以下に示すように、index.phpがあります。
<?php
$v = passthru("expect ./script2.exp qbadmin password hostname 'root_password' 6969") > &1;
echo "==========" . $v;
?>
私の期待スクリプトは次のとおりです。
#!/usr/bin/expect
set username [lindex $argv 0]
set pass [lindex $argv 2]
set host [lindex $argv 1]
set rootpass [lindex $argv 3]
set port [lindex $argv 4]
spawn ssh -o GSSAPIAuthentication=no $username@$host -p $port
expect -timeout 3 "*(yes/no)?" { send "yes\r";exp_continue }
expect -timeout 3 "*d: "
send "$pass\n"
expect -timeout 3 "*$ "
send "su -\r"
expect -timeout 3 "*d: "
send "$rootpass\r"
expect -timeout 3 "*#"
send "ls /home\r"
interact
index.php ファイルをブラウザにロードすると、以下のようになります。
私の意図は、expect スクリプトの最後から 2 番目のコマンドの出力をls /home
ブラウザーに表示することです。ここでどのような変更を行う必要がありますか。期待スクリプトを単独で実行すると、正しい出力が得られます。私は PHP の初心者なので、アドバイスしてください。