linux文件描述符和重定向
来源:互联网 发布:专业影视制作软件下载 编辑:程序博客网 时间:2024/06/05 11:14
常见的文件描述符有stdin、stdout、stderr。他们是与文件输入输出相关联的整数。由系统预留其对关联关系有:
0-----stdin(标准输入)
1-----stdout(标准输出)
2-----stderr(标准错误)
当我们在字符界面下使用命令,当命令运行出错时,一般会在界面显示,但当执行shell脚本时,我们一般不希望将错误显示在界面中,一般是将其重定项到其他文件中,如日子文件,就是最好的记录shell执行过程信息。
当我们使用ls +时,由语法格式错误,界面会给出出错提示:
刚开始学习时碰到一个郁闷的问题,就是希望将错误信息重定向打印在日志文件中,于是弄了个重定向符上去,如:ls + >>test_log,以为会将错误信息打入到test_log文件中,于是满心欢喜的跑了一下,实际结果倒是:
结果依然呐,固执得很,由于刚学习嘛,对单纯的想法也不能太苛刻了,但是还是想要解决的,于是励志学好重定向,当了解到了这三种描述符,发现,事情原来就是那么简单,将命令改改就ok了,改成ls + 2>>test_log,跑起来非常顺畅。注意2,这就是标准错误描述符,由于系统默认是标准输出,故:ls + >>test_log无法将错误打入日子中,该语法还原格式为:ls + 1>>test_log
在学习时还捡了一点其他知识,就是命令执行后的结果状态信息,很简单,无非就是成功和不成功嘛。这个状态值非常有用,至少我发现在shell脚本中运行时要打印状态信息时,这个值用来做逻辑判断实在是太幸福了。(解释:当命令执行成功是结果状态值是0,非0则表示执行失败,用变量$?来获得当前结果状态值)
如在实现文件复制时,判断该复制是否成功了的判断语句实现起来就比较简单了,在判断中将信息定向到结果日志中,如下简单语句:
cp -f $OldFilePath/test1 $NewFilePath/test1 2>>$Testlog/log_txt #若是执行失败,则将错误重定向到日子文件中去
if [ $? -e 0 ]
then
time_now_2=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_2 '替换完成'>>$Testlog/log_txt
else
time_now_2=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_2 '替换失败'>>$Testlog/log_txt
- linux文件描述符和重定向
- Linux --- 文件描述符和重定向
- Linux文件描述符和重定向操作符
- 文件描述符--exec 和重定向 (linux)
- linux shell基础1.4--文件描述符和重定向
- 玩转Linux文件描述符和重定向
- 玩转Linux文件描述符和重定向
- linux—dup和dup2重定向文件描述符
- Shell文件描述符和重定向
- 重定向,文件描述符
- linux:文件描述符重定向dup&dup2
- shell——文件描述符和重定向
- Shell学习之文件的描述符和重定向
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- linux下用 dup dup2 文件描述符重定向函数 输入输出重定向
- linux --dup dup2 文件描述符重定向函数--输入输出重定向
- 【开发工具】三、修改svn的用户名和密码
- Mysql无法创建外键的原因
- IOS开发缓存机制之—本地缓存机制
- 安装android游戏报错Installation error: INSTALL_FAILED_CONTAINER_ERROR
- Ubuntu上使用Hadoop 2.x 一 hdfs超级用户创建和设置
- linux文件描述符和重定向
- 32位linux(centos)下mongoDB的安装
- 关于数据库(oracle)的一些东西
- 关于ios分享(ShareSDK)
- Memcache介绍
- 队列C++
- js一百零一夜之第十一夜-javascript 的构造函数继承
- JMS有哪些消息类型
- HttpClient使用详解