参数通过 php 传递到 bash 文件不起作用


Argument pass through php into bash file not working

在我的脚本中,我通过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