Telnet BASHスクリプト - 出力は保存されません

Telnet BASHスクリプト - 出力は保存されません

私は非常に単純なTelnet bashスクリプトを実行しており、動作します。

#!/bin/sh
host=90.205.177.129
port=23
login=admin
passwd=Sky.2015
#cmd1=sh
cmd2=meminfo > /tmp/top.txt

echo open ${host} ${port}
sleep 5
echo ${login}
sleep 5
echo ${passwd}
sleep 10
#echo ${cmd1}
#sleep 5
echo ${cmd2}
sleep 20
echo exit

ただし、me​​minfoの出力は "top.txt"ファイルにコピーされません。ファイルが作成されました。

root@raspberrypi:/etc/my_scripts# ls -l /tmp/
total 12
-rw-r--r-- 1 root root 784 Oct 13 14:32 1wall_test1_S.txt
-rw-r--r-- 1 root root 216 Oct 14 11:28 test_l.txt
-rw-r--r-- 1 root root 216 Oct 14 11:37 test_s.txt
-rwxrwxrwx 1 root root   0 Oct 15 09:35 top.txt
root@raspberrypi:/etc/my_scripts#

どんな提案がありますか?

ベストアンサー1

問題は

cmd2=meminfo > /tmp/top.txt

これは実際に変数をcmd2次に設定します。メモリ情報リダイレクトを評価します。これを引用する必要があります。

cmd2='meminfo > /tmp/top.txt'

編集する:これにより、ターゲットにファイルが生成されます。自分の答えに基づいてスクリプトが実行されているシステムで生成しようとしています(元の質問には記載されていません)。理由はまだ有効ですが、解決策はもはや有効ではありません。

おすすめ記事