【发布时间】:2024-05-23 00:45:01
【问题描述】:
在 shell 脚本中使用 wget 并获取其返回值。
示例:
wget www.google.com
if [ $? = 0 ]
then
echo "success"
else
echo "fail"
fi
Linux 运行许多 shell 脚本,包括上面的一个。假设在shell脚本中执行wget后,操作系统将控制权交给其他一些shell脚本,当再次开始执行上面的shell脚本时,$?返回值不会是wget 的返回值。
有什么方法可以避免 linux 中的 shell 脚本返回值竞争条件?
问候,
苏克迪普·辛格
【问题讨论】:
-
基本上,你说的是永远不会发生的事情。你不需要担心这个。来自男人,$?扩展到最近执行的前台管道的退出状态。
-
即使存在竞争条件,您也可以通过在
if语句中直接使用wget来避免它:if wget www.google.com; then ...。
标签: linux bash shell sh race-condition