Chinaunix首页 | 论坛 | 博客
  • 博客访问: 504737
  • 博文数量: 111
  • 博客积分: 3160
  • 博客等级: 中校
  • 技术积分: 1982
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-24 11:49
个人简介

低调、勤奋。

文章分类

全部博文(111)

文章存档

2014年(2)

2013年(26)

2012年(38)

2011年(18)

2010年(27)

分类:

2010-04-24 11:52:36

环境变量问题和shell脚本错误输出:

#!/bin/sh

  /usr/bin/svn del $1  --username=jordan --password=justcall
  /usr/bin/svn ci -m "delete a file $1 " --username=jordan --password=justcall
  /usr/bin/svn update
  echo "abc $?"

调试和正确的日志:

#!/bin/sh
 
  export LANG=en_US.UTF-8
  /usr/bin/svn del $1  --username=jordan --password=justcall
  /usr/bin/svn ci -m "delete a file $1 " --username=jordan --password=justcall
  /usr/bin/svn update 2>/tmp/log // 将错误日志定向到/tmp/log中
  echo "abc $?" //显示上一条命令的执行结果,1为执行不成功

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用

/tmp/test.sh > /tmp/test.log 2>&1

前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?

要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。

阅读(808) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:回调函数使用

给主人留下些什么吧!~~