- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * $(()) * * * eg4.sh #!/bin/bash # script3-4.sh hour = `date +%H` case $hour in 0[1-9] | 1[01] ) echo Good morning !! ;; 1[2-7] ) echo Good afternoon !! ;; * ) echo Good evening !! ;; esac * 计算命令 seq命令:产生1-9的数字序列; expr命令:用于计算表达式的值,然后把计算结果送到标准输出;运算符前后需有空格 let 命令和“((...))” 结构 用于计算和测试整数算数表达式,执行整数算术运算,实际是对expr的简化,取代并扩展expr命令的整数算术运算功能。 Let 用引号表达式可以有空格,不用引号表达式当中不能出现空格 2.循环结构 语法 for 变量名 in 参数列表 do 命令列表 done 语义 将参数列表中的元素依次赋给变量名,在每次赋值后执行命令列表,参数列表表示变量名的取值范围。 for 例子——输出100内10的倍数 for i in `seq 1 9` do echo `expr $i \* 10` done 或写 echo $(expr $i \* 10) 乘号前加转义符, 与数字间要有空格。 eg5: #!/bin/bash echo -n “Checking system for errors” for dots in 1 2 3 4 5 6 7 8 9 10; do echo -n “.” echo “System clean.” done eg6: #!/bin/bash for x in paper pencil pen; do echo “The value of variable x is: $x” sleep 1 done Eg7:编写一个名为chname的程序,将当前目录下所有的.txt文件更名为.doc文件 #!/bin/bashfor file in *.txtdo leftname=`basename $file .txt` mv $file $leftname.docdone 说明:(1)在Linux系统中不支持mv *.txt *.doc这样的更名命令形式,如果需要将文件成批地更名最好编写一个shell脚本文件。(2)在for语句的参数列表中使用了“*”通配符。(3)在程序中用到basename命令,该命令从随后的文件名剥去指定的后缀。 (4)dirname 获取文件的目录名 eg8:要求:给当前目录里的所有文件加后缀名“ .html” #!/bin/bash for file in *; do echo “Adding .html extension to $file...” mv $file $file.html sleep 1 done while语句 语法 while [ 条件表达式 ] do 命令列表 done 语义 循环执行命令列表中的命令,直至条件表达式的值为假。 eg9 while例子——求1到100的和 i=1 sum=0 while [ $i -le 100 ] do sum=`expr $sum + $i` i=`expr $i + 1` done echo The sum is $sum i=1 sum=0 while [ $i –le 100 ] do sum=$((sum+i)) i=$((i+1)) done echo $sum 执行 chmod u+x sum.sh ./sum.sh 命令结果重定向 1 stdout标准输出 2 stderr标准错误 输出重定向到文件file,终端上只能看到标准错误:#命令 file 错误重定向到文件file ,终端上只能看到标准输出:#命令 2file 标准输出和标准错误都重定向到file,终端上看不到任何信息:#命令 file 21 (等于#命令 file) 屏蔽命令任何输出的:/dev/null 21 cp /etc/my.conf /dev/null 21 /dev/null 空设备 此句命令的结果是: cp命令没有目标文件,应该输出错误。 21表示错误重定向指向标准输出。 /dev/null又使标准输出重定向到空,就是不要输出信息 即:一个错误的命令执行,什么功能都不实现,且没有任何信息或错误提示输出。 #! /
文档评论(0)