大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。
重定向命令列表如下:
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 之间的内容作为输入。
#需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
重定向通过在命令间插入特定的符号来实现,如下所示:
command > file
上面这个命令执行 command 然后将输出的内容存入file。
注意 :
file 内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用 >> 操作符。
#!/bin/sh
who > users
执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。
和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:
command1 < file1
这样,本来需要从键盘获取输入的命令会转移到文件读取内容。
#!/bin/sh
wc -l < users
# 输出 users 文本行数