输出重定向;重定向一般通过在命令间插入特定的符号来实现;
如,命令1 > 文件1;执行命令1,然后将输出的内容存入文件1;
文件1,若是不存在,会自动创建;
文件1,若是存在,文件1已经存在的内容将被新内容替代;
如果要将新内容添加在文件末尾,使用>>操作符;
实例如下;
who > ab,执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件;你可以使用cat命令查看文件内容;
输出重定向会覆盖文件内容;如下:
使用>>追加到文件末尾,如下;
输入重定向;命令1 < 文件1;
重定向深入讲解;
标准输入文件(stdin):stdin的文件描述符为0,unix程序默认从stdin读取数据;
标准输出文件(stdout):stdout的文件描述为1,unix程序默认向stdout输出数据;
标准错误文件(stderr):stderr的文件描述符为2,unix程序向stderr流中写入错误信息;
默认情况下,command > file 将stdout重定向到file,command < file 将stdin重定向到file;
/dev/null文件;
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到/dev/null;
命令1 > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
如果希望屏蔽 stdout 和 stderr,可以这样写:$ command > /dev/null 2>&1
注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
shell文件包可以包含外部脚本,这样可以很方便的封装一些公用的代码作为一个独立的文件;
格式如:. 文件 或 source filename文件;
如下图;外部脚本可以无执行权限;执行的脚本一定得有执行权限;