我有一个bash脚本,用于检查是否存在某些文件并将其复制到其他位置。如果文件不存在则退出状态码为4。
如果状态代码为0,则应运行两个php脚本并使用复制的文件。但我不知道如何告诉第三个命令(第二个PHP脚本)只有在第一个命令为0时才能运行。
复制文件的脚本:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log
第一个php脚本:
php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log
第二个php脚本:
php -f "xknddb-import.php" test k000 >> /var/log/importer/test.xknddb.log
这两个php脚本可以同时运行,所以我尝试了这个:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &
如果第一个命令失败,第一个php脚本不会运行。但第二个PHP脚本总是开始运行。
是否可以将两个php脚本分组?
答案 0 :(得分:2)
如果您不想打开子shell,只需将两个php脚本与括号()
或括号{}
组合在一起:
$ false && (echo "Hello" & echo "World")
$ true && (echo "Hello" & echo "World")
Hello
World
在你的情况下:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && (php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &)