gvfs-mountを実行するための私の最初のexpectスクリプトを書いています。 wcriptがプロンプトに「Password:」に応答するようにしたいと思います。パスワードを入力してから、非対話モードに戻って終了してください。インタラクティブモードで「期待する」と「する」を切り替えるにはどうすればよいですか?
私はautoexpectので生成され、このスクリプトを変更したいと少し私がdepersonalized:
#!/usr/bin/expect -f
set timeout -1
spawn gvfs-mount {smb://[email protected]/my-userid$}
match_max 100000
expect -exact "Password required for share my-userid\$ on 10.253.x.y\r\nDomain \[WORKGROUP\]: "
send -- "my-domain\r"
expect -exact "my-domain\r\nPassword: "
send -- "my-password\r"
expect eof
ちょうど-exactが第二の送信に-iために変更すると、それが私のために待機状態にスクリプト全体を置きますドメインを入力しますが、キーボードや "送信"は読み取れません。私はgvfs-mountをフォアグラウンドの標準に縛られていないバックグラウンドプロセスで生成させることと関連があると推測しています。
どのようにして「期待している」インタラクティブ機能を切り替えるにはどうすればよいですか?
ありがとうございました。
ユーザーにパスワードを入力させる前に 'stty -echo'したがっているかもしれません(そしてその後は' stty echo'それ以降)。 –
@glennjackman良いキャッチです。ありがとう – resmon6