shell编程知识点

  • 表达式赋值
z=`expr $x + $y`
  • 位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N 得到,N 是一个数字,如果为 1,即$1.类似 C 语言中的数组,Linux 会把输入的命令字符串分段并给每段进行标号,标号从 0 开始。第 0 号为程序名字,从 1 开始就表示传递给程序的参数。如$0 表示程序的名字,$1 表示传递给程序的第一个参数,以此类推。
  • 内部参数
上述过程中的$0 是一个内部变量,它是必须的,而$1 则可有可无,最常用的内部变量有$0、$#、$?、$*,它们的含义如下:
$0 :命令所在的路径
$# :传递给程序的总的参数数目
$? :shell 程序在 shell 中退出的情况,正常退出返回 0,反之为非 0 值
$* :传递给程序的所有参数组成的字符串
  • 键盘读入变量的值
在 shell 程序设计中,变量的值可以作为字符串从键盘读入,其格式为: read 变量
  • 函数
函数名( ) add( )
{
函数体
}
函数调用方式为:
函数名 参数列表 add $1 $2
  • 字符串比较
= 比较两个字符串是否相同,相同则为"真"
!= 比较两个字符串是否相同,不同则为"真"
-n 比较字符串长度是否大于零,如果大于零则为"真"
-z 比较字符串的长度是否等于零,如果等于0则为"真"
  • 数字比较
-eq 相等 -ge 大于等于 -le 小于等于 -ne 不等于 -gt 大于 -lt 小于
  • 逻辑运算符号
! 反:与一个逻辑值相反的逻辑值
-a 与(and):两个逻辑值为"是"返回值才为"是",反之为"否"
-o 或(or):两个逻辑值有一个为"是",返回值就为"是"
  • 文件测试操作符
-d 对象存在且为目录返回值为"是"
-e 文件存在
-f 对象存在且为文件返回值为"是"
-L 对象存在且为符号连接返回值为"是"
-r 对象存在且可读则返回值为"是"
-s 对象存在且长度非零则返回值为"是"
-w 对象存在且可写则返回值为"是"
-x 对象存在且可执行则返回值为"是"
如 [ -d /root/zb ], 返回值0为是,1为不成立。
  • for 循环
for 变量 in 列表 for i in a,b,c,e,i 2,4,6,8 #列表中的值:a,b,c,e,i,2,4,6,8 用循环的方式把字符与数字分成两行输出
do do
操作 echo $i
done done
另外格式 for ((j=1;j<=100;j++));
  • while 循环
while 表达式 while((num<=100));
do
操作
done
  • until 循环
until 表达式 until [ $num -gt 100 ]
do
操作
done
  • if 语句
if 表达式 1 then
操作
elif 表达式 2 then
操作
else
操作
fi
  • case语句
case 字符串 in
值 1|值 2)
操作;;
值 3|值 4)
操作;;
*)
操作;;
esac

猜你喜欢

转载自blog.csdn.net/chinagreenwall/article/details/80110516