我有一个bash脚本abcd.sh
#!/bin/sh
for i in `seq 8`; do ssh w$i 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat'; done &
pid=$!
sleep 1
kill -9 $pid
我想在我的bash脚本中使用PHP。
例如:在bash脚本中我想通过PHP设置seq
的值。
答案 0 :(得分:1)
#!/bin/bash
for i in {1..8}; do echo $i; done
更新1
如果通过PHP获得服务器数量,您可以执行以下操作:
numservers=$(php -r 'echo 8;')
for i in $(seq $numservers); do echo $i; done
1
2
3
4
5
6
7
8
更新2
好的,你说服务器的数量是动态的,但是你说它是在脚本中设置的(这似乎是矛盾的),但这就是你所做的:
numservers=10
for i in $(seq $numservers); do echo $i; done
1
2
3
4
5
6
7
8
9
10
答案 1 :(得分:0)
为什么不用PHP编写整个shell脚本?
#!/usr/bin/php
<?php
for ($i = 0; $i < 8; $i++) {
exec("ssh w$i 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat'");
}
?>
(代码未经测试,只是一个例子)
答案 2 :(得分:0)
理解你想要的东西并不容易。
也许这有帮助。该脚本在bash中定义var PHP_VAR
并在PHP中使用此var。然后我们调用一个PHP代码片段,将输出放在shell var output
中。最后我们输出var output
(但你可以用它做其他事情)。
赞成: PHP的所有输出都可以在var output
中找到。
#!/bin/bash
echo "I am a bash echo"
export PHP_VAR="I was in php"
# Here we start php and put the output in 'output'
output=$(php << EOF
<?php \$inner_var = getenv("PHP_VAR");
echo \$inner_var; ?>
EOF
)
# usage var 'output' with php output
echo "---$output---"