1.4.2 linux和高并发-shell编程-文本流及重定向

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-26 12:21:27

目录

1.写在前面

2.文本流&重定向

3.输出重定向

4.输入重定向


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命令执行,报错:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!