missing之bash脚本编写-2

# 脚本的返回值或者运行结果

一般情况下,很多命令将一般信息打印到标准输出(STDOUT),将错误打印到标准错误输出(STDERR)。通常脚本会有返回码,这样就比较方便的控制和监控脚本运行情况。返回0代表运行成功,其他表示运行有错误,所以上节里的常用变量*$?*就表示上个命令返回的返回码。当然也可以直接在调用命令的地方,将脚本的返回值做一些二进制的运算,例子如下;

```bash

false || echo "Oops, fail"

# Oops, fail

true || echo "Will not be printed"

#

true && echo "Things went well"

# Things went well

false && echo "Will not be printed"

```

另外还有一种情况是将命令得到的结果作为变量。把调用命令放到这个里面,$( cmd ),即cmd的位置,等脚本运行的时候,命令运行的结果就会被替换到这个位置。举个例子,比如这样一句脚本:

```bash

for file in $(ls)

```

这条脚本会先运行ls命令,然后再遍历所有通过ls找到的所有文件,再进行相关操作。

还有一个类似的秘术,即 *< (cmd)* ,他的做法是,先运行命令,然后将运行结果放到临时文件,然后在刚才cmd的位置上,将临时文件的整个路径将cmd替换掉。比如命令:``diff <(ls foo) <(ls bar)`` 将会显示在foo,bar两个命令下面文件的不同情况。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章