shell的重定向例子

exec 4>&1 1>/dev/null; echo hello; echo eror >&2; exec 1>&4 4>&-; echo "aaaaa"                                    

先用fd4保存fd1(标准输出)的内容,然后将fd1重定向到/dev/null,就是让标准输出无内容。
这时向标准输出echo内容,无输出;想标准出错echo内容,正常输出。
然后再将标准输出恢复,然后关闭fd4.
这是再echo到标准输出就正常了。

以下引自: http://linux.ccidnet.com/art/3067/20061013/921279_1.html

2、 基本IO

cmd > file 把 stdout 重定向到 file 文件中;

cmd >> file 把 stdout 重定向到 file 文件中(追加);

cmd 1> fiel 把 stdout 重定向到 file 文件中;

cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;

cmd 2> file 把 stderr 重定向到 file 文件中;

cmd 2>> file 把 stderr 重定向到 file 文件中(追加);

cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加);

cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout;

cat <>file 以读写的方式打开 file;

cmd < file cmd 命令以 file 文件作为 stdin;

cmd << delimiter Here document,从 stdin 中读入,直至遇到 delimiter 分界符。

3、 进阶IO

>&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;

<&n 标准输入复制自文件描述符 n;

<&- 关闭标准输入(键盘);

>&- 关闭标准输出;

n<&- 表示将 n 号输入关闭;

n>&- 表示将 n 号输出关闭;

你可能感兴趣的:(shell的重定向例子)