下面是perl里的一段代码,在shell下有没有类似的代码能知道shell命令是否成功执行?
#== 修改权限 ==
$mycmd="chown -R root.root $local_dir";
$ret=system("$mycmd");
if ($ret != 0) {
LOG("修改权限失败1;错误原因为: $!");
}else{
LOG("修改权限成功1");
}
如何确认shell执行成功??
-
- 帖子: 62
- 注册时间: 2010-09-08 18:17
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 62
- 注册时间: 2010-09-08 18:17
Re: 如何确认shell执行成功??
实在不明白怎么写,能举个例子吗??
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如何确认shell执行成功??
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:~$
[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:~$
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如何确认shell执行成功??
好像很少人会动手试试,一试就会清楚了:
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:~$
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:~$
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
Re: 如何确认shell执行成功??
shell里,命令是否执行成功,就看该命令执行后的返回值$?,如果该值为0,就表示该命令执行成功,非0则失败。
如果是个shell脚本,$?返回的是最后一条命令的执行结果。所以,在shell里为了确认各个命令是否执行成功,
会经常执行完命令,就检查$?,确保命令都是执行成功的。这样来确认脚本也是执行成功的。
如果是个shell脚本,$?返回的是最后一条命令的执行结果。所以,在shell里为了确认各个命令是否执行成功,
会经常执行完命令,就检查$?,确保命令都是执行成功的。这样来确认脚本也是执行成功的。