参数通过php进入bash文件无法正常工作

时间:2014-04-07 06:21:11

标签: php linux bash loops arguments

在我的脚本中,我通过Bash文件将两个参数传递到PHP文件中 PHP文件:

$number_server = 7;
$server_name = "dbfs";
exec("/bin/bash drun.sh $number_server $server_name",$db_uptime);
foreach($db_uptime as $dbm_load){
echo $dbm_load."<br />";
 }  

Bash文件:

#!/bin/sh
for i in seq $1; do ssh $2$i 'uptime;free -m;mpstat;cat /tmp/db2.info'; done &
pid=$!
sleep 2
kill -9 $pid 

根据它,它将显示7条记录,但实际上它只显示一条记录。FOR脚本中的Bash循环只运行一次而第二条参数传入bash不起作用。

1 个答案:

答案 0 :(得分:3)

你的BASH脚本似乎错了。将其替换为:

#!/bin/bash

for ((i=0; i<$1; i++)); do 
    ssh "$2$i" 'uptime;free -m;mpstat;cat /tmp/db2.info'
done &
pid=$!
sleep 2
kill -9 $pid