无法测试 返回值 $? ,为这小问题折腾了半天

sh/bash/dash/ksh/zsh等Shell脚本
回复
lotreal
帖子: 19
注册时间: 2009-03-24 9:55
送出感谢: 0
接收感谢: 0

无法测试 返回值 $? ,为这小问题折腾了半天

#1

帖子 lotreal » 2011-02-24 11:09

想测试 返回值 $?

代码: 全选

#!/bin/bash
tar tf /foo/bar
echo $?
if [ $? -ne 0 ]
then
    echo fail
else
    echo ok
fi
echo ----------------

pwd
echo $?
if [ $? -ne 0 ]
then
    echo fail
else
    echo ok
fi
执行结果始终为:

代码: 全选

tar: /foo/bar: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
2
ok
----------------
/home/lot/workspace/nginx-php-mysql-install
0
ok

求教~
only_one
帖子: 186
注册时间: 2010-05-25 16:49
送出感谢: 0
接收感谢: 0

Re: 无法测试 返回值 $? ,为这小问题折腾了半天

#2

帖子 only_one » 2011-02-24 11:20

你测试的是echo的返回值啊

可以
tar -tf /foo/bar; tar_return=$?

一般直接用if测试
if tar -tf /foo/bar; then
lotreal
帖子: 19
注册时间: 2009-03-24 9:55
送出感谢: 0
接收感谢: 0

Re: 无法测试 返回值 $? ,为这小问题折腾了半天

#3

帖子 lotreal » 2011-02-24 12:09

多谢多谢!原来这个原因。。习惯性加测试语句了
回复

回到 “Shell脚本”