我想要一个脚本运行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"
任何更好的方式这都很好吗?
答案 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