- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shell程序设计Shell程序设计
3.3.9.1 break命令
这个命令在控制条件未满足之前,跳出for/while/until循环。另外还可以为break提供一个参数,表明要跳出的循环的层数,这点跟我们在c语言中的break不一样。不过一般情况下,我们不会这么做,因为它降低了程序的可读性。
例:
#!/bin/sh
rm -rf fred*
echo fred1
echo fred2
mkdir fred3
echo fred4
for file in fred*
do
if [ -d $file ]
then
break;
fi
Done
echo first directory starting fred was $file
rm -rf fred*
exit 0
3.3.9.2 :命令
冒号(:)是一个空命令,它偶尔会被用于逻辑简化,相当于true的一个别名,由于它是内置命令,所以它的运行效率要比true高
while: 相当于 while true
3.3.9.3 continue命令
类似于C中的continue,使for/while/until循环跳到下一次循环继续执行,continue也可以附带一个参数,表示希望继续执行的循环嵌套的层数,同样,这个参数也很少用,它会降低程序的可读性。
例:
#!/bin/sh
rm -rf fred*
echo fred1
echo fred2
mkdir fred3
echo fred4
for file in fred*
do
if [ -d $file ]
then
echo skipping the directory $file
continue
fi
echo file is $file
done
rm -rf fred*
exit 0
3.3.9.4 .命令
点(.)命令用来执行当前shell中的命令
如. ./shell_script
在shell脚本程序中,点命令的作用类似于c语言中的include,因此可以使用点命令将变量和函数定义结合进一个脚本程序中;
例:
1.sh
#!/bin/sh
var=“hello 1.sh”
echo “this is 1.sh script”
2.sh
#!/bin/sh
. ./1.sh
echo “this is 2.sh script”
exit 0
3.3.9.5 echo命令
最常见的就是如何去掉换行符,linux通常采用如下方法:
echo -n “hello world”
3.3.9.6 eval命令
eval命令允许对参数进行求值。它是shell的内置命令,通常不会以单独命令的形式存在。
foo=10
x=foo
y=‘$’$x
echo $y
打印出的结果是$foo
而
foo=10
x=foo
eval y=‘$’$x
echo $y
输出是10
当然你也可以用另外一种方法对变量求值
y=$(($x))
3.3.9.7 exec命令
exec有两种用法
1) 将当前的shell替换为一个不同的程序
exec wall “hello world”
将当前的shell替换为执行wall,exec后面的语句都不会执行了,因为当前的shell已经不复存在了
2) 修改当前文件描述符
exec 3 afile
文件描述符3被打开以便从文件afile中读取数据。
3.3.9.8 exit命令
exit n命令以退出码n结束运行。
如果你在退出时没有指定一个退出状态,那么最后一条被执行的命令的状态将被用作返回值。
在shell脚本编程中,0表示成功,1-125是脚本程序使用的错误代码
3.3.9.10 export命令
export命令将作为它参数的变量导出到子shell中,并使之在子shell中有效。例:
先列出脚本程序export2:
#!/bin/sh
echo “$foo”
echo “$bar”
然后是脚本程序export1。在这个脚本的末尾,我们调用了export2
#!/bin/sh
foo=“the first meta-syntactic variable”
export bar=“the second meta-syntactic variable”
./export2
运行这个脚本程序,输出如下:
$export 1
the second meta-syntactic variable
第一个空行的出现是因为变量foo在export2中不可用,所
以$foo被赋值为空,echo一个空变量将输出一个空行。
当变量被一个shell导出后,它就可以被该shell调用的任何脚本使用,也可以被后续调
文档评论(0)