shell输入/输出重定向,shell文件包含外部脚本

输出重定向;重定向一般通过在命令间插入特定的符号来实现;

如,命令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文件;

如下图;外部脚本可以无执行权限;执行的脚本一定得有执行权限;

 

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/12532410.html