shell/bash脚本 - 如何一次执行多个脚本使用while

问题描述:

#!/bin/bash 
for((i=1;i <=10;i++)) 
do 
    php /var/www/get.php 
done 

我有上面的shell脚本,我用它来执行10次get.php。不过看起来脚本是一个一个执行的,所以我想知道是否可以一次执行所有脚本(显然不需要输入10次php路径命令)shell/bash脚本 - 如何一次执行多个脚本使用while

如果你想要同时运行所有这些,您可以更改:

php /var/www/get.php 

到:

php /var/www/get.php & 

这在后台运行,而不是在前台的过程。当然,您有责任确保您的脚本在后台运行时功能为功能。您可能不得不注意那些不喜欢被共享的资源,或者混合来自不同流程的输出。

如果你也想等待全部十次完成为好,开始:

#!/bin/bash 
for((i=1;i <=10;i++)) 
do 
    php /var/www/get.php & 
done 
wait 
+0

确实PHP /var/www/get.php> get.txt有同样的效果(在后台运行),为PHP /var/www/get.php&? – Michael 2011-03-30 03:41:41

+0

@Michael,no。这只是重定向输出。它仍然在前台运行。背景意味着父母开始孩子并继续前进(所以他们并排运行)。前景意味着父母将等待孩子完成,这不受输出重定向的影响。 – paxdiablo 2011-03-30 03:43:14

+0

非常感谢!这就是我所需要知道的 – Michael 2011-03-30 03:47:49

#!/bin/bash 
for((i=1;i <=10;i++)) 
do 
    php /var/www/get.php & 
done 

只需添加一个符号。

另一个变化:

seq 1 3 | while read i; do /usr/bin/php -v &; done;