在我的脚本中,我通过PHP
文件将两个参数传递到Bash
文件中。
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 中不起作用。
你的 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