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 "a c={!d}
运行结果如下
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条件语句可省略成:[[ 条件语句 ]] && 结果语句
&&:左右两边都满足时才会执行echo
||:左右两边满足一个时,执行满足条件的那个
if语句格式:
if condition1
then
command1
elif condition2
command2
…
else
commandN
fi
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 = 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
11.while语句
while condition
do
command
done
测试条件为,如果a小于10,那么条件返回真。a从0开始,每次循环处理时,a加1。运行以上脚本,返回数字1-10,然后终止
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}引用变量,而双引号可以
14.跳出循环
在循环过程中,有时候需要在未达到循环结束条件时强行跳出循环。Shell使用两个命令来实现该功能:break和continue
break:
break命令允许跳出所有循环(终止执行后面的所有循环)
continue:
continue仅跳出当前循环
15.预定义变量:
$# 命令行参数或位置参数的数量
$? 最近一次执行的命令或者shell脚本的出口状态
*用" “括起来的情况、以”$1 $2 … *与[email protected]的输出结果相同
@用" “括起来的情况、以”$1" 、“n” 的形式输出所有参数。
变量组织临时文件,确保文件名的唯一性
$0 脚本本身的文件名
$! shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
编写shell脚本:args.sh
执行命令 ./args.sh 10 20
结果如下
16.TMOUT
在用户输入控线一段时间后自动断开