phpからshellのexpectを実行したい
php
<?php
exec('sh read.sh', $output);
print_r($output);
read.sh
#!/bin/sh
/usr/bin/expect -c "
set timeout 10
spawn ssh test
expect \"passphrase\" {
send \"pass\r\"
expect \"Last login\"
send \"ls\r\"
expect \"$\"
send \"exit\r\"
}
interact
"
上記のコードのように phpからexecでシェルを実行して、 sshで接続した先でlsをし、その結果をphpで受け取りたいです。
しかしコードの結果は
spawn ssh test
という、戻り値になってしまっています。 read.shを直接実行すると、意図したlsの結果が返却されます
sshの接続や、実行権限などは確認済みです。
なにか原因やコツなどわかるかたいましたらご教授ください。 宜しくお願いします。
環境 さくらVPS php 5.5 apache2.2