0

Expectk と rmt コマンドを使用する tcl スクリプトを作成しようとしています。rmt プロセスを生成して正しいプロセス ID を取得できますが、使用する送信コマンドが機能しません。man ページから、通常の送信コマンドが別の目的で定義されていることに気付いたので、exp_send を使用する必要があります。

これがスクリプトです。やりたいことは、テープ ドライブのステータスを取得することだけです。

#!/bin/sh
# Restarts using wish in the command search path
exec expectk "$0" -- "$@"

set stored_id [spawn "rmt"]
exp_send -i $stored_id "O/dev/nst0\r"
exp_send -i $stored_id "S\r"

編集:これは、通常、コマンドラインからコマンドを使用する方法です:

$ rmt
O/dev/nst0
S
A0
^C

「A0」はコマンドからの応答であり、^C は Ctrl-C を押して rmt コマンドを終了することを表しています。

4

2 に答える 2

0

\n\r各コマンドの最後に送信してみてください。私にとっては次のような作品です(注意、 raw を使用expect):

spawn "rmt"

send "O/goo/bar\n\r"
    expect  "E22" {
    puts "Error!!!"
}
于 2013-11-13T21:40:35.883 に答える