我正在编写一个将在服务器上执行bash脚本的php脚本。这个练习绝对需要的一件事是我们使用/var/tmp/count.sh来获取我的数据。
bash脚本:
#!/bin/bash
#filename: /var/tmp/count.sh
cat /etc/passwd | grep ':201:' | awk -F ':' '{print $1}'
#This command will spit out:
# user1
# user2
# user3
PHP脚本:
<?php
$output = shell_exec('/var/tmp/count.sh');
$sizeofme = sizeof($output);
echo "$output" . "\n" ;
echo "sizeofme = $sizeofme" . "\n" ;
// this spits out:
// user1
// user2
// user3
// sizeofme = 1
?>
如何制作包含3个元素的PHP数组?
以下bash for循环的PHP等效项:
for i in ${output[@]; do
newarray+=("$i")
done
另外,我注意到如果我这样做:
<?php
echo $output[0] . "\n" ;
echo $output[1] . "\n" ;
echo $output[2] . "\n" ;
echo $output[3] . "\n" ;
echo $output[4] . "\n" ;
echo $output[5] . "\n" ;
echo $output[6] . "\n" ;
echo $output[7] . "\n" ;
echo $output[8] . "\n" ;
echo $output[9] . "\n" ;
?>
我明白了:
u
s
e
r
1
u
s
e
r
2
... 等等等等。我在俯瞰什么?
答案 0 :(得分:1)
我认为PHP将返回视为一个连续的字符串。请尝试以下
$data = explode("\n", $output);
var_dump($data);
那会给你想要的数组