shell脚本基本概念讲解

文章目录


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名**"创始团队·嘉宾"** 和**"内容共创官"** ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。


🍊脚本概述

什么是脚本?

脚本:使用同一特定的描述性语言,依据一定的格式编写的可执行文件。在windows中,大家可以常常见到。windows中的脚本以.bat结尾的。

什么是shell?

答:shell是一个命令行解释
什么是shell脚本?

答:shell脚本就是shell命令的有序集合。

shell脚本的运行方法

方法1:

powershell 复制代码
1、建立xx.sh文件
2、赋予我们shell文件执行权限   //chmod u+x xx.sh
3、执行shell文件

方法2:

powershell 复制代码
1、建立.sh文件
2、bash + xx.sh

代码示例:

test-1.sh

powershell 复制代码
cd /home/linux/Class
mkdir Student
touch log.txt
cp log.txt ./Student

🍊shell中的变量

简介:

1、我们shell变量不支持数据类型,它将任意赋值给变量的数据当作字符串识别。

2、我们定义变量的时候,不需要给钱( ) , 我们输出的时候需要给钱( ),我们输出的时候需要给钱( ),我们输出的时候需要给钱()。

3、给变量赋值的时候,等号两边不能有空格

示例代码:

test2.sh

powershell 复制代码
#! /bin/bash     //#!表示我们使用的解释器类型
DATA=1    //不能是DATA = 1,不能有空格
echo "DATA : $DATA"

变量分类
用户自定义变量

powershell 复制代码
特点:变量没有类型,不需要定义,直接使用,所有的内容被解释为字符串
说明:
1、shell中引用一个变量必须要加$
2、在shell中,对变量赋值的时候,"="两边不能有空格
3、单引号引用的数据会转换为字符串

示例:
str="hello world"

my_data=$str
echo "my_data = $my_data"

示例代码:

test3.sh

powershell 复制代码
str1="hello world"
str2="say : ${str1}"  //{}使用大括号里面是一个整体

echo $str2

cmd='ls'
echo $cmd

mystr1='say : ${str1}'
echo $mystr1

位置变量

powershell 复制代码
$0 :shell脚本的名字
$1-$9 : 第一个参数~第九个参数,空格作为分隔符

$#: 位置参数的个数[不包括shell脚本本身]

$*: 所有的位置参数
$@: 所有的位置参数

$?: 上一条命令的执行状态或获取shell函数的返回值
注意:0代表状态为真,非0代表状态为假
$$: 获得我们shell脚本的进程号  //ps -ef 可以查看所有进程号

示例代码:

test4.sh

powershell 复制代码
echo '$0' : $0

//下面的| |,仅仅作为区分,没有实际意义

echo '$1' : "|$1|"
echo '$2' : "|$2|"
echo '$3' : "|$3|"
echo '$4' : "|$4|"
echo '$5' : "|$5|"
echo '$6' : "|$6|"
echo '$7' : "|$7|"
echo '$8' : "|$8|"
echo '$9' : "|$9|"
echo '$10' : "|${10}|"  //注意:不能是echo '$10' : "|$10|"

echo '$*' : "|$*|"
echo '$@' : "|$@|"

echo '$#' : "|$#|"

echo '$?' : "|$?|"

echo '$$' : "|$$|"

read 类似于C语言中getcher(),读取用户输入的一个数据

输入命令:

powershell 复制代码
bash test4.sh 10 20 30 40 50 60 70 80 90 888

输出结果:

powershell 复制代码
$1 : |10|
$2 : |20|
$3 : |30|
$4 : |40|
$5 : |50|
$6 : |60|
$7 : |70|
$8 : |80|
$9 : |90|
$10 : |888| 

$* : 10 20 30 40 50 60 70 80 90 888
$@ : 10 20 30 40 50 60 70 80 90 888

$# : 10

$? : 0

$$ : 4143
相关推荐
运维佬24 分钟前
在 Linux 系统上部署 Apache Solr
linux·apache·solr
编程墨客33 分钟前
第03章 文件编程
linux·运维·服务器
命里有定数37 分钟前
windows工具 -- 使用rustdesk和云服务器自建远程桌面服务, 手机, PC, Mac, Linux远程桌面 (简洁明了)
linux·运维·服务器·windows·ubuntu·远程工作
cleveryuoyuo44 分钟前
进程的程序替换exec*函数和shell实现
linux·服务器
运维佬1 小时前
nginx配置负载均衡详解
运维·nginx·负载均衡
爱编程的小金毛球球1 小时前
-bash: /home/xxx/anaconda3/bin/conda: No such file or directory
linux·conda·bash
Shepherd06192 小时前
【Jenkins实战】Windows安装服务启动失败
运维·jenkins
Biomamba生信基地3 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc3 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu