お世話になります。
下記のようにマクロを記述して、コマンドの戻り値で判定を行い
異常時にダイアログを表示させようとしています。
sendln '<コマンド>'
wait 'root@'
sendln 'echo "=== STATUS $? ==="'
wait 'root@'
recvln
recvln
strcompare inputstr '=== STATUS 0 ==='
if result!=0
messagebox 'Error' param1
end
こちらを実行すると、<コマンド>の内容に依って下記悪い実行例のように
<コマンド>のあとのwaitが効かず、<コマンド>が終わる前にechoが実行されたような
動きをしており正しく動作しない場合があります。
☆悪い実行例
[root@ ~]# <コマンド>
echo "=== STATUS $? ===
[root@ ~]# echo "=== STATUS $? ===
=== STATUS $1 ===
[root@ ~]
☆良い実行例
[root@ ~]# <コマンド>
[root@ ~]# echo "=== STATUS $? ===
=== STATUS $1 ===
[root@ ~]
常に良い実行例のように、<コマンド>が終わってからechoするようにしたいのですが
どのように修正すればいいでしょうか?
なお、timeoutについてはマクロ中で設定していないのでタイムアウトしない認識でおります。
また、悪い実行例のパターンで下記のようにしてwaitの戻り値を拾ったところ1となっていました。
sendln '<コマンド>'
wait 'root@'
messagebox result param1
sendln 'echo "=== STATUS $? ==="'
以下、試して駄目だったことです。
・同期モードの使用
setsync=1、およびtimeout=60をマクロの前半部分に記載。
特に変化はなし。
・<コマンド>のあとのwaitを2つ重ねる
<コマンド>の内容によって、うまく言ったようにみえるパターンと
waitの無限待ちになるパターンの両方あり。
<コマンド>の内容に依存するのか、タイミング問題で偶々うまく言ったようにみえたのか
判断がつかないため保留中。
・<コマンド>の後にpause 1を入れる
<コマンド>の実行速度が常に一定ではないので、pause 1では間に合わない場合がある。
適切なpause時間の見積りが困難なため保留。
・戻り値の判定をシェルスクリプトなどで行う
顧客要件により没
以上、よろしくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
現象からすると、悪い例では
[root@ ~]# <コマンド>
のroot@ をwaitで検出してるように想います。
http://ttssh2.sourceforge.jp/manual/ja/macro/com …
でバッファをクリアするのはでょうでしょうか?
回答有難うございます。
>バッファーの中に古い文字がたまっているために受信文字を処理するコマンドの結果が予期しないものになることがあり、flushrecv コマンドによってそれを防ぐことができる。
こういう仕組みなのですね、勉強になりました。
まだ動作の確認がとれておりませんがひとまずお礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux linuxサーバーのキャッシュをクリアするコマンドを実行したい。 5 2023/01/24 14:52
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- その他(パソコン・スマホ・電化製品) LINUXPCに詳しい人に気楽に答えてほしい質問です。 2 2022/10/25 08:07
- UNIX・Linux linuxシェルスクリプト(baシェル)でファイルにかかれた数式を評価し計算する方法を教えてください 1 2022/08/26 14:28
- UNIX・Linux ubuntuに外部侵入できるか 2 2022/04/09 12:48
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
[teraterm] waitコマンドで停止しない。
その他(プログラミング・Web制作)
-
ttlで戻り値を取得する方法
その他(プログラミング・Web制作)
-
Teratermマクロの戻り値の取得失敗
その他(プログラミング・Web制作)
-
-
4
一つのTeratermのマクロで複数のTeratermのウィンドウを立ち上げることはできますか?
サーバー
-
5
TERA TERMを隠す方法
その他(プログラミング・Web制作)
-
6
TeraTermマクロの文字列結合
その他(プログラミング・Web制作)
-
7
TeraTermマクロのinputboxで入力した値をメッセージ確認表示するには?
サーバー
-
8
Tera Termでのコマンド流し込みの際の文字欠け、不要文字挿入
サーバー
-
9
TeraTermマクロで入力した文字を表示し接続
その他(コンピューター・テクノロジー)
-
10
TeraTermのマクロについて
その他(コンピューター・テクノロジー)
-
11
Tera Term のマクロでの改行コード変更
その他(コンピューター・テクノロジー)
-
12
【Teratermマクロ】文字列の分割について
その他(プログラミング・Web制作)
-
13
TeraTermのログが正しく取得出来ない
サーバー
-
14
【Teratermマクロ】文字列の一致比較について
その他(プログラミング・Web制作)
-
15
Teraterm 1行空白を入れたい。
その他(プログラミング・Web制作)
-
16
Teraterm scprecvの上書き確認なし
フリーソフト
-
17
Teratermで、条件分岐させたい
ネットワーク
-
18
teratermマクロ 文字列分岐
その他(コンピューター・テクノロジー)
-
19
TeraTermマクロの”Link macro first”解消について
その他(プログラミング・Web制作)
-
20
tera term マクロのinputbox
その他(コンピューター・テクノロジー)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フリーランスのエンジニアって...
-
LCD ディスプレイを Raspberry ...
-
ハッシュテーブル(連想配列)が...
-
Google ColaboでGUI作成
-
プログラムの素朴な質問です 分...
-
.htaccessでの振り分け
-
chatGPTで次々と質問をしていく...
-
vba クリップボードクリアにつ...
-
Selenium4でボタンをクリックで...
-
rpa化する言語としてら何があり...
-
家庭のパソコンで Python の 環...
-
python の 連鎖代入の文法
-
ラズベリーパイピコでのPch MOS...
-
pythonの条件分岐(if)
-
昔のパソコン少年の武勇伝「店...
-
このURLで広告を出しているのは...
-
matplotlibで任意の角度の円弧...
-
最新のプログラム言語を学ぶに...
-
pythonにてseleniumを使うも、...
-
P2P地震速報のEEW APIの仕様書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python の 連鎖代入の文法
-
IT業界より楽に稼げる業界って...
-
ものづくりに向いているプログ...
-
プログラムの素朴な質問です 分...
-
このURLで広告を出しているのは...
-
Pythonでターミナルに文字を出...
-
LCD ディスプレイを Raspberry ...
-
ホワイトハッカー
-
強化学習の環境作成、AI。自動...
-
https://paiza.jp/challenges/5...
-
フォルダを自動作成・移動を複...
-
VBAのサブルーチンとプロシージ...
-
プログラミングで例えばゲーム...
-
gpogletramsについてコマンドプ...
-
【ChatGPT】皆さんの人とは変わ...
-
batファイル、コマンドプロンプ...
-
バッチファイルについて
-
Webアプリや業務アプリのデータ...
-
AI(人口知能)とは
-
Pythonのre.split()の正規表現...
おすすめ情報