【TeraTermマクロ】複数行のコマンド実行結果を取得する


この記事はプロモーションを含みます。

Linux

TeraTermマクロから[ls -l]コマンドなど、複数行の実行結果を取得する方法を解説します。

早速ですが、ソースコードになります。
サンプルでは、[ls -l /home/]コマンドを実行し、その結果をメッセージボックスで表示しています。
相変わらず、[recvln]に癖がありますが、何とか取得出来ました。

仕組みとしては、[recvln]でコマンドの実行結果の1行目でループに入るよう調整して、実行結果の1行と改行を結合して、変数に格納しています。
プロンプトの戻り値[#]が文字列に含まれた場合にループを抜けて、メッセージボックスで変数の内容を表示しています。

; ログインマクロの呼び出し
include 'module\login.ttl'

sendln 'ls -l /home/'
recvln
recvln
strscan inputstr '#'
sendln ''

while result=0
	strconcat msg inputstr
	strconcat msg #13
	recvln
	strscan inputstr '#'
endwhile

messagebox msg 'コマンド実行結果'

end

コマンドの実行結果になります。

合計 16
drwx------. 15 awx  awx  4096  5月 24  2021 awx
-rw-r--r--   1 root root  892  5月 31  2021 data.yml

記事は以上です。これを利用するとLinuxサーバから情報を取得出来るため、タスクスケジューラなどと組み合わせれば、サーバの監視など定期的な情報収集に役立てそうですね。

サンプルソースコードの冒頭にあるログインマクロは以下で解説しています。
簡単に作成出来るので、あわせてご覧ください。

コメント

タイトルとURLをコピーしました