【Shell脚本(二)】运算符,命令和文件
2018-04-11 14:30
399 查看
1介绍
本节介绍了shell脚本的运算符,命令和文件。2运算符
2.1算数运算符
原生bash不支持算数运算,所以需要借助其他的一些工具,此处用到了expr。#!/bin/bash
a=20
b=10
value=`expr $a + $b`
echo $value
结果为30。需要注意的是,表达式外侧的反引号(tab键上方),以及在’+’两侧的变量必须与其有空格,如果写成
value=`expr $a+$b`
此例输出的结果为20+10,而不是30。
同理+,-,*,/,%都是一样的写法,另外,乘号(*)前边必须加反斜杠(\)才能实现乘法运算
,而==,!=则是下面这样:
#!/bin/bash a=20 b=10 if [ $a != $b ] then echo "False" fi
一定要十分注意’[]’与变量之间的空格和’!=’与变量之间的空格,如果省略了空格就会报错。赋值语句’=’与其他语言一样正常使用即可。
2.2关系运算符
此处没使用‘<’这种符号,而是使用上面这种字符,同样也要注意空格的问题。
#!/bin/bash a=20 b=10 if [ $a -gt $b ] then echo "a大于b" else echo "a小于b" fi
2.3布尔运算符
#!/bin/bash
a=20
b=10
if [ $a -gt $b -a $a -lt 30 ]
then
echo "True"
else
echo "False"
fi
[ $a -gt $b -a $a -lt 30 ]表示为a大于b,且小于30,结果为true
2.4逻辑运算符
&& 和||这两个没有什么可说的,2.3的例子,也可以写成if[[ $a -gt $b && $a -lt 30 ]],注意是两个[]。
2.5字符串运算符
关于-z,-n等用法
#!/bin/bash c=Tom if [ -z $c ] then echo "c长度为0" else echo "c长度不为0" fi
2.6文件测试运算符
下图的整理来自菜鸟教程网File是指所判断的文件路径,结果为”文件可读”:
#!/bin/bash file="/home/ac/桌面/Shell脚本测试文件/04.sh" if [ -r $file ] then echo "文件可读" else echo "文件不可读" fi
3命令
Echo命令:也就是输出字符串,在双引号内可以使用转义运算符,变量等等,另外要让其执行某个命令,则使用echo加上反引号,反引号里为所要执行的命令。
#!/bin/bashread First_Name
echo "输出:${First_Name}"
Printf命令:模仿的是C语言里的Printf,其用法也基本与其保持一致,至于与echo的区别在于,printf能进行有效的显示格式控制。
Test命令:我们可以用test取代if语句后的括号’[ ]’。
#!/bin/bashnum1=200
num2=100
if test $num1 -gt $num2
then
echo "num1 大于 num2"
else
echo "num1 小于 num2"
fi
4语法
4.1if语句
(1)If elseif [] then ..语句.. else ..语句.. fi
(2)If elseif
if []
then
..语句..
elif [] then ..语句.. else ..语句.. fi
4.2for循环
结构:for var in item1 item2 ... itemN
do
command1
command2
...
commandN
Done
例子:
#!/bin/bash for a in 1 2 3 4 5 do echo $a Done
4.3while语句
结构:while condition do command Done
例子(注意空格):
#!/bin/bash
a=1
b=5
while([ $a -lt $b ])
do
echo $a
a=`expr $a + 1`
done
4.4until循环
同where循环一样,只不过是当条件为真时停止。4.5Case
结构:case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
例子:
#!/bin/bash echo '你输入的数字为:' read Num case $Num in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '其他' ;; esac
4.6函数
函数的使用比较简单,当然也可以往里面传递参数。参数的传递与之前的文件参数传递是一样的。例子:
#!/bin/bash read name read word FirstWord(){ echo "$1 say: $2 " } FirstWord $name $word
5文件
可以在一个shell脚本里执行另一个shell脚本。引用规则为:.文件路径
如下: . ./test1.sh
例子:
#test1.sh文件 #!/bin/bash name="Tom" word="Hello world!" #test2.sh文件 #!/bin/bash . ./test1.sh echo "$name say: $word"
相关文章推荐
- shell脚本之文件相关的命令
- Monkeyrunner 写脚本的技巧(shell 命令,文件操作)
- ftp自动上传下载文件(Shell脚本)及ftp命令详解
- shell脚本命令 运行python文件&python命令行运行python代码
- Shell脚本——make命令和Makefile文件
- 简易登录,批量执行命令,批量copy文件shell脚本【Linux运维之道之脚本案例】 推荐
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- shell批量重命令文件脚本
- shell脚本--文件查找之find命令
- 续写vim,shell脚本基础编辑,read命令,if与case判断语句,文件查找方式,压缩与解压,
- 小实验---采用iconv命令对目录文件进行递归式字符编码转换的shell脚本
- Linux-Shell脚本编程-学习-6-Shell编程-使用结构化命令-文件比较-case编程
- Shell脚本中使用for循环和cat命令实现按顺序合并文件
- copy命令及库文件至/mnt/sysroot/目录shell脚本
- 编写一个SHELL脚本,可以获得指定目录下的所有文件及文件夹的大小。输出的样式与 ls -lh 命令相同。
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
- shell脚本--检查文件是否存 cut命令详解
- 简易登录,批量执行命令,批量copy文件shell脚本【Linux运维之道之脚本案例】
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- shell脚本命令,统计文件行数