2-3 shell程序设计

命令

在shell脚本程序内部可以执行两类命令。一类是可以在命令提示符中执行的"普通"命令,也称为外部命令,一类是"内置"命令,也成为内部命令。内置命令是在shell内部实现的,它们不能作为外部程序被调用。然后,大多数的内部命令同时也提供了独立运行的程序版本,这是POSIX规范的一部分。

break命令

在控制条件未满足之前,跳出for,while或者until循环。默认情况下,break只跳出一层循环。

:命令

冒号:命令是一个空命令,它偶尔会被用于简化条件逻辑,相当于true的一个别名。由于它是内置命令,所以运行的比true快,但它的输出可读性较差。

例如可以使用

while :

实现一个无限循环,代替更常见的while true。

continue命令

这个命令使for、while或until循环跳到下一次循环继续执行,循环变量取循环列表中的下一个值。

.命令

点.命令用于当前shell中执行命令:
通常,当一个脚本执行一条外部命令或脚本程序时,它会创建一个新的环境(一个子shell),命令将在这个新环境中执行,在命令执行完毕后,这个环境将被丢弃,留下退出码返回给父shell。但外部的source命令和点命令(这两个命令是同义词)在执行脚本程序中列出的命令时,使用的是调用该脚本程序的同一个shell。
因为在默认情况下,shell脚本程序会在一个新创建的环境中执行,所以脚本程序对环境变量所作的任何修改都会丢失。而点命令允许执行的脚本程序改变当前环境。如果要把一个脚本当做“包裹器”来为后续执行的一些其他命令设置环境时,这个命令通常就很有用。
在shell脚本程序中,点命令的作用有点类似与C或者C++中的#include指令,它在当前上下文中执行命令,可以使用它将变量和函数定义结合进脚本程序。

echo命令

虽然,X/Open建议在现在shell中使用printf命令,但是还是经常使用echo命令来输出结尾带有换行符的字符串。
一个常见的问题是如何去掉换行符,linux常用的解决方式为:

echo -n "string to output"

 

 

 

posted @ 2018-09-29 17:08  刘-皇叔  阅读(125)  评论(0编辑  收藏  举报