0

我想要一个脚本来运行 main.ksh 以运行 one.ksh 和 second.ksh 仅当 one.ksh 的输出匹配“1”时。因此,如果输出不是“1”,那么 second.ksh 不应该运行。

 cat one.ksh
 #!/usr/bin/ksh
 echo "1"

cat second.ksh
#!/usr/bin/ksh

echo "2"

我这样做了:

#!/usr/bin/ksh

ksh .ksh > one.txt

file="one.txt"

while read line
do

if [ $line -eq 2 ] ;then
ksh second.ksh
else
echo "one.ksh is no good"
fi
done <"$file"

有什么更好的方法吗?

4

2 回答 2

3

而不是echo 1从第一个脚本开始,您应该使用exit 0. 如果它不应该继续,exit 1.

这是在 Unix 中发出成功和失败信号的标准方式。

完成此操作后,您可以使用以下任何一种:

first.ksh && second.ksh

或者

if first.ksh
then
    second.ksh
fi

或者

set -e  # Automatically exit script if a command fails
first.ksh
second.ksh
于 2013-06-04T23:41:10.373 回答
1
out=`one.ksh`

if [ "x$out" == "x1" ]; then
    second.ksh
fi
于 2013-06-04T23:21:13.833 回答