Shell脚本1.sh就像
#/bin/bash
if some java command;
then
exit 1;
else
exit 0;
fi
Shell脚本2.sh将根据1.sh
中的结果(1或0)确定其执行#/bin/bash
readyToDoSomethingIfOne=$(1.sh)
if($readyToDoSomethingIfOne=="1");
then
echo "ready to go";
else
echo "Not ready yet" ;
fi
看起来1.sh的exit命令没有将值传递给2.sh.有没有好办法呢?
顺便说一下,出于商业原因,必须将1.sh和2.sh分开。
由于
答案 0 :(得分:2)
#/bin/bash
if 1.sh; then
echo "ready to go";
else
echo "Not ready yet" ;
fi
答案 1 :(得分:0)
#/bin/bash
if readyToDoSomethingIfOne=$(1.sh); then # Just use the exit status of the initial script directly.
…
else
echo 'nope!'
fi
如果你根本不需要变量,只需运行如下脚本:
if ./1.sh; then
echo "Not ready yet"
return / exit / continue # Not enough context to know which exit approach is best.
fi
答案 2 :(得分:0)
构造
VAR=$(COMMAND)
将COMMAND的输出分配给变量VAR。您可以从自动变量$?
获取最后一个命令的退出状态。那是
COMMAND
case $? in
0)
# do this
;;
1)
# do that
;;
*)
# do something else
;;
esac
如果您只想区分成功($? == 0
)和失败($? != 0
),那么您可以使用if
中更简单的script1.sh
构造。
如果使用$?
,请注意每个命令后它都会发生变化,因此如果您需要该值供以后使用,请将其保存在变量中。
COMMAND
status=$?
# now use $status