
注意:每个shell脚本文件头部必须得是 #!/bin/sh
一 变量
1.变量的概念:变量是shell传递数据的-种方法,用来代表每个取值的符号名。
Shell有两类变量:临时变量和永久变量.
临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量。永久变量是环境变量,其值不随shell脚本的执行结束面消失。2.变量的定义:用户定义的变量由字母或下划线开头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”。一般变量 使用大写字母表示,并且是英文字母开头,赋值号“=”两边应没有空格,如NUM=5、STR="A String"
可以将个命令的执行结果赋值给变量:但是需要使用命令替换符号。
注意:
1.var1=`command`表示把shell命令赋给变量,如var1=`date`(`是Esc下面的一个键,称为反引号)
2.单引号和双引号的区别,“ ”号是会把里面的变量值进行输出,‘ ’是会把内容原封不动输出,不会识别里面的变量。
使用set命令查看所有的变量。
使用unset命令删除指定的变量。
使用$varname调用变量
示例:demo1.sh
#!/bin/shvar1=10echo $var1var2=‘$var1‘echo $var2var3="$var1"echo "$var3..."var4=`date`echo $var4unset var3echo "$var3..."echo `set | grep var4`
3.占位变量:在Shell里面还有俩种特殊的变量,一种是占位变量,还有种是特殊的占位变量,在我们编写Shell的时候十分的常用,一定要熟悉他们。
占位变量示例: ls -I file1 file2 file3... (n范围=1-9)在代码里使用特殊的占位变量:-9进行替代
$* //这个程序的所有参数 $# //这个程序的参数个数
$$ //这个程序的PID
$! //执行上一个后台命令的PID
$? 执行上一个命令的返回值
$(0-9) 显示位置变量
示例:demo2.sh
shecho $
#! /bin/0echo $1echo $echo $*echo $$echo $?echo $!echo $#3二 shell运算命令:
运行:[[email protected] demo]# ./demo2.sh var1 var2 var3 查看结果
expr注意点:命令。
1 只能对对整数进行运算,无法对浮点数进行运算。
2 expr的运算必须用空格间隔开。
3 \* 表示转义字符。
4 保持先算乘除后算加减,如果需要优先运算则需要加命令替换符。
5 也可以对变量进行运算 *** 作。
10
示例:
[[email protected] demo]# expr 5 + 15[[email protected] demo]10# expr 5 - 5[[email protected] demo]10# expr 3 / 3[[email protected] demo]10# expr 3 \* 30[[email protected] demo]10# expr 3 - 2 \* 4[[email protected] demo]10# expr `expr 3 - 2` \* 14[[email protected] demo]30# num=[[email protected] demo]8# echo `expr $num + `38test
三 shell判断命令:变量判断语句可用 [] 进行简化,如 test -d 等价于 [ -d ]命令
使用test命令可以对文件、字符串等进行测试,一般配合控制语句使用,不应该单独使用。
如下:
字符串测试: test str1=str2 测试字符串是舌相等
test str1!=str2 测试字符串是否不相等
test str1 测试字符串是否不为空
test -n str1 测试字符串是否不为空
test -z str1 测试字符串是否为空
int测试: test int1 -eq int2 测试整数是否相等
test int1 -ne int2 测试整数是否不相等
test int1 -ge int2 测试int1是否>=int2
test int1 -gt int2 测试int1是否>int2
test int1 -le int2 测试int1是否< =int2
test int1 -It int2 测试int1是否<int2
文件测试 test -d file 指定文件是否目录
test -f file 指定文件是否常规文件
test -x file 指定文件是否可执行
test -r flle 指定文件是否可读
test -w file 指定文件是否写
test -a file 指定文件是否存在
test -s file 文件的大小是否非0
四 if语句
if语句语法格式:if test语句 then ... elif test语句 then ... else ... fi
注意:简化写法的句式非常标准也非常重要,句式为
if"空格"["空格"-d"空格""空格"] ,其中空格必不可少
shfile
示例:if-demo.sh
#! /bin/if=/root/Desktop/demo/demo.sh-ifd $file ] [ -then echo ‘is a directory‘elif [ f $file ]-then echo ‘is a file‘else echo ‘unkNow type‘fi注意:-a 或 -o 必须配合test或是if来使用
五 逻辑 *** 作符:
-a 逻辑与
-o 逻辑或
六 for循环语句:
for ... done语法格式:
for 变量 in 名字表
do
语句块
done
elect 变量 in 列表
七 select循环语句:
select ... done 语法格式:
s do
语句块
done
case 参数 in
八 case语句:
case语句语法:
值1) 语句块;;
...
值n) 语句块;;
esac
注意:语句块一定要以 ;; 结束
while 条件
九 while循环
while循环语句语法:
do
语句块
done
总结以上是内存溢出为你收集整理的Linux-shell编程全部内容,希望文章能够帮你解决Linux-shell编程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)