Shell脚本的一些简单整理

Shell Script(Shell脚本)

脚本编程Bash Shell(变量名和登号之间不能有空格)
1.每一个shell要有头的定义,正常的 #!/bin/bash
2.打印:echo "要打印的内容"
**3.定义好的脚本需要加上执行权限:**chmod +x 脚本路径
4.三种调用方式:
(1)路径调用:如果在当前目录,则使用./test.sh,也可使用绝对路径
(2)普通脚本执行:sh 脚本路径
(3)指定b shell执行:/bin/bash 脚本路径 bash 脚本路径

**5.指定变量的运算 : b=expr $a + 1 echo "b"使expr使1a=1b="abc"arr=12342b=b"(注意使用的是反引号,不是单引号)** expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 (1)直接赋值法:a=1 b="abc" arr={1 2 3 4} (2)引用赋值法:b=a c=b3a=lsl4d=3f={b} (3)引用命令执行结果的赋值:a=`ls -l` (4)间接引用赋值法:d=3 f={!d}Shell脚本的一些简单整理

运行结果如下
Shell脚本的一些简单整理
6.执行变量的运算:b=expr $a + 1 b=((((a+1)) b=[[a+1]
(1)在判断条件中使用计算:在中括号内侧及运算符两边都要加空格
(2)完整的表达式要被 包含,注意这里是反引号,不是单引号

7运算关系符
数值型:大于 :-gt 小于:-lt 等于:-eq或== 不等于:-ne
大于等于:-ge 小于或等于:-le
字符串型:等于:=或== 不等于:!= 是否为空:-z
逻辑型:逻辑与:-a或&& 逻辑或:-o或|| 逻辑否:!
文件型:判断是否为目录:-d 判断目录或文件是否存在:-e
判断是否为文件:-f 判断文件或目录针对当前用户是否可读:-r
判断文件或目录针对当前用户是否可写:-w
判断文件或目录针对当前用户是否可执行:-x

8.if条件语句可省略成:[[ 条件语句 ]] && 结果语句
Shell脚本的一些简单整理
&&:左右两边都满足时才会执行echo
Shell脚本的一些简单整理
||:左右两边满足一个时,执行满足条件的那个
if语句格式:
if condition1
then
command1
elif condition2
command2

else
commandN
fi

Shell脚本的一些简单整理

9.test命令:用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
!/bin/bash
a=10
b=10
if test $[a] -eq $[b]
then
echo ‘相等’
else
echo ‘不等’
fi

num1=“run1”
num2=“run2”
if test $num1 = num2thenechoelseechofitest使ifa="s1"b="s2"[["num2 then echo ’相等' else echo '不等' fi test命令可以不使用if关键字 a="s1" b="s2" [[ "a" != “$b” ]] && echo “不等”

10.for循环
for var in item1 item2 …itemN
do
command1
command2

commandN
done
写成一行:
for var in item1 item2 … itemN; do command1; command2; … commandN done;
顺序输出1-10
Shell脚本的一些简单整理

11.while语句
while condition
do
command
done
测试条件为,如果a小于10,那么条件返回真。a从0开始,每次循环处理时,a加1。运行以上脚本,返回数字1-10,然后终止
Shell脚本的一些简单整理

12.until循环
until 循环执行一系列命令直至条件为 true 时停止。
until condition
do
command
done
condition 一般为条件表达式,如果返回值为 false,则继续执行循环体内的语句,否则跳出循环。
以下实例我们使用 until 命令来输出 0 ~ 9 的数字:
#!/bin/bash
a=0
until [ ! $a -lt 10 ]
do
echo $a
a=expr $a + 1
done
输出结果为 0 1 2 3 4 5 6 7 8 9

13.case
case语句为多选择语句,可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令
在单引号中不能直接用${a}引用变量,而双引号可以
Shell脚本的一些简单整理Shell脚本的一些简单整理

14.跳出循环
在循环过程中,有时候需要在未达到循环结束条件时强行跳出循环。Shell使用两个命令来实现该功能:break和continue
break:
break命令允许跳出所有循环(终止执行后面的所有循环)
continue:
continue仅跳出当前循环

15.预定义变量:
$# 命令行参数或位置参数的数量
$? 最近一次执行的命令或者shell脚本的出口状态
.* 表示所有的位置参数,其值是所有位置参数的值.如*用" “括起来的情况、以”$1 $2 … n"9""n"的形式输出所有参数,此选项参数可超过9个;若不加" ",那么*与[email protected]的输出结果相同
@.@ 所有参数列表.如@用" “括起来的情况、以”$1" 、“2""2"、 … "n” 的形式输出所有参数。
shellIDShell使 变量是shell脚本里面的进程ID。Shell脚本进程使用变量组织临时文件,确保文件名的唯一性
$0 脚本本身的文件名
$! shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
编写shell脚本:args.sh
Shell脚本的一些简单整理
执行命令 ./args.sh 10 20
结果如下
Shell脚本的一些简单整理

16.TMOUT
在用户输入控线一段时间后自动断开

Shell脚本的一些简单整理