shell教程6
shell命令 输入与输出的重定向
一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端
重定向命令列表
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 之间的内容作为输入。
输出重定向
1 | who > myfile |
重定向输出会覆盖文件的内容,如果不希望文件的内容被覆盖,可以使用>> 追加到文件结尾
例子
1 | echo "jhshz520" >> myfile |
输入重定向
1 | wc -l myfile # 统计文件的行数,结果会输出文件名 |
重定向的深入讲解
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file
1 | commond 2 > file #stderr 重定向到file |
/dev/null文件
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null
1 | $ command > /dev/null 2>&1 |
shell 文件包含
和其他语言一样,Shell 也可以包含外部脚本
1 | . filename # 注意点号(.)和文件名中间有一空格 |
test1.sh
1 | #!/bin/bash |
test2.sh
1 | #!/bin/bash |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 583614868@qq.com
文章标题:shell教程6
文章字数:676
本文作者:钟帅豪
发布时间:2020-11-17, 15:27:11
最后更新:2020-11-18, 11:06:32
原始链接:http://jhshz520.github.io/2020/11/17/shell教程6/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。