我有50个php文件,我想从命令行同时运行。现在,我使用代码在多个CLI窗口中运行它们:
php Script1.php
我希望能够调用一个同时执行所有50个php文件的脚本文件。我一直在阅读如何让命令行不等待输出,但我似乎无法使它工作。
我是MAC和Scripting的新手 - 也许我不需要脚本?是否有另外一个基于mac的解决方案可以做到这一点,而我不必打开50个单独的终端窗口?
答案 0 :(得分:5)
您可以添加&符号“&
”来分隔每个命令:
php script1.php & php script2.php & php script3.php ...
此符号符号将告诉shell在后台运行命令。
要检查输出,您可以将其重定向到文件:
php script1.php > script1.log.txt & php script2.php > script2.log.txt
您可以在其上执行tail
来阅读日志:
tail -f script1.log.txt
答案 1 :(得分:1)
如果您的脚本编号从1到50很好,您可以在.command
文件中尝试以下操作:
i=1;
while [ $i -lt 51 ]
do
osascript -e 'tell app "Terminal"
do script "php Script$i.php"
end tell' &
i=$[$i+1]
done
这应该打开50个单独的终端窗口,每个窗口运行脚本{$ i} .php
答案 2 :(得分:1)
您也可以同时运行它们,但不能在后台运行。
php test1.php; php test2.php;
我不知道你为什么要在脚本运行后与脚本“互动”。