跳转至

Shell 脚本*

没系统学过 shell 脚本,用到的时候记录一下

大多数 UNIX 命令从终端接受输入并将产生的输出发送回终端,默认的输入输出是标准输入输出,文件描述符 0 通常是标准输入 stdin,1 是标准输出 stdout,2 是标准错误输出 stderr。重定向命令列表如下:

Command Description
command > file 将标准输出重定向到 file。
command < file 将标准输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n>& m 将输出文件 m 和 n 合并。
n<&m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
commmand 2> file 将标准错误输出重定向到 file。
command > file 2>&1 将 stdout 和 stderr 合并后重定向到 file。
Here Document*
command << delimiter
    document
delimiter

其中 delimiter(定界符)具体内容可以自定义,但是结尾的 delimiter 一定要顶格写,前后不能有任何字符。

$ wc -l << TEST
test here document
and use wc -l
to count line
TEST
3
/dev/null*

任何写入 /dev/null 的内容都会被丢弃,如果希望屏蔽 stdout 和 stderr,可以写为

$ commmand > /dev/null 2>&1

这里的 2> 一体的时候才表示 stderr。


最后更新: July 1, 2021