怎样把程序执行的结果输出到一个文件里?_从零开始学Linux运维|17.文件描述符和文件重定向...

daf9e6c6441ad6222393efbd67d9b14b.png

文件返回值

当我们执行一个命令的时候,命令无论执行成功或者失败,都会给我们返回一个执行后的退出状态

这个状态使用命令"echo $?"查看

如果执行成功,返回值为0

执行了cd命令和ls命令,成功,返回值为0

0c8ddfba8a6b77a502c90732379f51ad.png

如果执行失败,返回值不为0

进入一个不存在的目录,报错,返回值为1

输入一个不存在的命令,报错,返回值为127

34b6a3e3000bebe29776bfe5b97b0520.png

从上面两图中可以看到,无论执行的命令成功或者失败,大多都是有提示的

对于没有提示的命令,我们就可以通过"echo $?"来看是否成功执行

文件描述符

常用的文件描述符有0,1,2是标准输入,标准输出和错误输出

文件描述符0,是标准输入,默认是键盘输入,也可以是用文件或者其他命令来进行输入

文件描述符1,是标准输出,默认是屏幕,也可以输出到文件

文件描述符2,是标准错误,就是程序执行报错的输出,默认是屏幕,也可以输出到文件

8e8792dd4805758d3e0634754a32213a.png

文件输出重定向

需要认识几个符号

">"覆盖重定向

">>"追加重定向

我们先创建一个文件夹"mkdir /root/17test"

进入新建的文件夹"cd /root/17test"

然后试试上面两个重定向符号

先实验追加重定向

"echo 123 >> 17.txt"执行多次,后cat一下这个文件

953216b3683ae8c2a2f47607fb68fa6c.png

我执行了3次之后,发现这个文件也是三行,说明输出都重定向到这个文件里面了

如果是用">"覆盖重定向呢

e01843db46db81a3f6a6e9825f9479e2.png

结果显而易见,只有最后一条的值

如果我们重定向的时候报错了会啥样,我们来试试

4079cf5cf6e45b7afb6e910bfa0f5594.png

错误打印到了屏幕上,重定向的文件也被清空了

这里我们加上文件描述符再试一次

4c3592522f9c24b498143f998b9fa67b.png

错误重定向到了文件里面,没有打印出来

我们新建一个脚本文件,"vim 17.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值