分页: 1 / 1

如何确认shell执行成功??

发表于 : 2011-03-24 9:05
liucheng1513
下面是perl里的一段代码,在shell下有没有类似的代码能知道shell命令是否成功执行?
#== 修改权限 ==
$mycmd="chown -R root.root $local_dir";
$ret=system("$mycmd");
if ($ret != 0) {
LOG("修改权限失败1;错误原因为: $!");
}else{
LOG("修改权限成功1");
}

Re: 如何确认shell执行成功??

发表于 : 2011-03-24 10:09
eexpress
bash?看$?就是。

Re: 如何确认shell执行成功??

发表于 : 2011-03-24 18:21
liucheng1513
实在不明白怎么写,能举个例子吗??

Re: 如何确认shell执行成功??

发表于 : 2011-03-24 18:33
fnan
kose3@kose3-desktop:~$ if ($(sudo chown -R kose3 /media/b5ece2dc-d4c8-48b0-8049-140b495a4328/));then echo "change owner ok.";fi
[sudo] password for kose3:
change owner ok.
kose3@kose3-desktop:~$ if ($(sudo chown -R kose3 /media/b5ece2dc-d4c8-48b0-8049));then echo "change owner ok.";fi
chown: cannot access `/media/b5ece2dc-d4c8-48b0-8049': No such file or directory
kose3@kose3-desktop:~$

Re: 如何确认shell执行成功??

发表于 : 2011-03-25 17:52
fnan
好像很少人会动手试试,一试就会清楚了:
kose3@kose3-desktop:~$ if (sudo chown kose3 /media/b5ece2dc-d4c8-48b0-8049-140b495a4328/ 2>/dev/null);then echo ok;else echo not ok;fi
ok
kose3@kose3-desktop:~$ sudo chown kose3 /media/b5ece2dc-d4c8-48b0-8049-140b495a4328/
kose3@kose3-desktop:~$ if [[ $? = "0" ]];then echo ok;else echo fail;fi
ok
kose3@kose3-desktop:~$

Re: 如何确认shell执行成功??

发表于 : 2011-04-01 17:44
tusooa

代码: 全选

if $mycmd ; then echo ok ; else echo fail ; fi

Re: 如何确认shell执行成功??

发表于 : 2011-04-11 13:42
chengmoYS
shell里,命令是否执行成功,就看该命令执行后的返回值$?,如果该值为0,就表示该命令执行成功,非0则失败。

如果是个shell脚本,$?返回的是最后一条命令的执行结果。所以,在shell里为了确认各个命令是否执行成功,
会经常执行完命令,就检查$?,确保命令都是执行成功的。这样来确认脚本也是执行成功的。