用于检查一个脚本输出然后运行第二个脚本的Shell脚本

时间:2013-06-04 23:12:24

标签: bash shell unix

我想要一个脚本运行main.ksh,只有当one.ksh的输出匹配“1”时才运行one.ksh和second.ksh。因此,如果输出不是“1”,则second.ksh shouyld不会运行。

 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"

任何更好的方式这都很好吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

out=`one.ksh`

if [ "x$out" == "x1" ]; then
    second.ksh
fi
相关问题