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
答
#!/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;
确实PHP /var/www/get.php> get.txt有同样的效果(在后台运行),为PHP /var/www/get.php&? – Michael 2011-03-30 03:41:41
@Michael,no。这只是重定向输出。它仍然在前台运行。背景意味着父母开始孩子并继续前进(所以他们并排运行)。前景意味着父母将等待孩子完成,这不受输出重定向的影响。 – paxdiablo 2011-03-30 03:43:14
非常感谢!这就是我所需要知道的 – Michael 2011-03-30 03:47:49