0

以下に示すように、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 の初心者なので、アドバイスしてください。

4

1 に答える 1