目录
1.写在前面
我们上次简单提了一下bash,bash还有一些比较重要的内容,我们想放到后面讲管道知识的时候在再重点提及。这次呢先讲一下文本流和重定向的知识。我个人认为,脚本编程是非常重要的一个环节,是无法替代的,自动化一直以来是人们追求的梦想。
2.文本流&重定向
流和我们java中文件流差不多,有输入有输出。那么重定向是什么呢?web中有转发和重定向,和那个是一回事。fd是文件描述符,可以实现重定向操作。进到fd里面,最后那个0表示服务端号,再连接一个xshell,就会变成1.
查进程号:
3.输出重定向
任何一个命令都有012这样一个标准输入输出方式,重定向是什么意思:重定向是人为的干预012这样一个输出位置。比如:本来输出到控制台,现在重定向到一个文件中。一个>表示覆盖原来的文件,>>表示不覆盖,继续再下面追加文件内容。
正常输出输出到一个文件里面:
错误输出输出到一个文件里面:
正确的、错误的分开输出到各自的文件:
检索顺序是先检索是否有这个目录,然后输出是从左边到右边。所以下面这个显示是正常输出,因为先检测是否有目录,报错误输出,打印到文件。然后正常输出将其覆盖掉。
把错误输出和标准输出合并到一个文件:(&> 和 >& 这两种写法都可以)
请大家注意一下,1 2 等和重定向符号之间不能加空格,不然会将其作为目录报错,重定向符号后面可以加空格。
4.输入重定向
< 可以表示输入重定向,有三种方式:<<<从一个字符串输入;<<E 多行输入,E退出;< 从文件输入。
我们可以看到使用read命令可以实现输入命令:(输入重定向)
read命令对于换行符号特别敏感,将第一行赋值之后,看到换行符就将后面的东西都舍弃掉了。必须键入命令AABB(自己定义)之后才退出输入。
我们可以将read命令键入文本shell脚本中:
可以将read修改为cat命令,直接打印作为输入提示:
把第一行给注释掉,会当做bash命令执行,报错:
来源:CSDN
作者:敲代码的乔帮主
链接:https://blog.csdn.net/Suyebiubiu/article/details/104496290