プロが教えるわが家の防犯対策術!

Teratermマクロで、/etc/sysconfig/i18nファイルのLANG設定を確認しようとしています。
(LANG="ja_JP.UTF-8"となっているのを確認しようとしています)
以下の内容で、recvlnでコマンドの戻り値が取得できません。
messagebox で表示させると、コマンド結果の最終行”[root@tk2-222-20767 ~]#”しか取得できません。
recvlnでコマンドの戻り値にLANG="ja_JP.UTF-8"を取得させたいのですが、方法がわかりません。
ご教授願います。よろしくお願いします。

*************コマンド結果*************
[root@tk2-222-20767 ~]# grep LANG /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
[root@tk2-222-20767 ~]#

**************マクロ*****************
; Check1
flushrecv
sendln 'grep LANG /etc/sysconfig/i18n'
mpause 500
wait '$' '#'

;+++++++++++ Check +++++++++++
loopFlag = 1
checkFlag = 0
while loopFlag = 1
; 一行受信
recvln
if result = 0 loopFlag = 0
line = inputstr
messagebox line "DEBUG112"
; Check
strcompare 'LANG="ja_JP.UTF-8"' line
if result = 0 checkFlag = 1
endwhile

質問者からの補足コメント

  • waitで待った後でrecvlnすると、wait行のみがバッファに入っているという仕様で理解しました。
    ありがとうございました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/04/24 08:29

A 回答 (1件)

flushrecv ; 受信バッファをクリアして


sendln 'grep LANG /etc/sysconfig/i18n' ; grepコマンドを送って
mpause 500 ;少し待った後
wait '$' '#' : $ か # が送られてくるまで待つ

その後で recvln で読み込む

というプログラムになっていることは理解できてますか?


[root@tk2-222-20767 ~]# grep LANG /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
[root@tk2-222-20767 ~]#

のうち、
最初の[root@tk2-222-20767 ~]# までが flashrecv の対象で、
grep LANG /etc/sysconfig/i18n は sendlnしたもの。
そのあとで 、$ か#まで待つ(=読み飛ばす)と、どこになると思いますか?
この回答への補足あり
    • good
    • 2
この回答へのお礼

早速ありがとうございます。

LANG="ja_JP.UTF-8"
[root@tk2-222-20767 ~]#

がrecvlnの対象で、これを順次検索していくと理解しています。

お礼日時:2015/04/24 08:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A