Bash

Telnet BASH 腳本 - 未保存輸出

  • October 15, 2015

我正在執行一個非常簡單的 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

但是,meminfo 的輸出不會復製到“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#

有什麼建議嗎?

問題在於

cmd2=meminfo > /tmp/top.txt

這實際上將變數設置cmd2meminfo並評估重定向。你應該引用這個。

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

**編輯:**這會在目標上創建文件。根據您自己的答案,您想在執行腳本的系統上創建它(未在您的原始問題中說明)。原因仍然有效,但解決方案無效。

用於alias cmd2="meminfo > /tmp/top.txt"創建別名命令,而不是使用名為cmd2.

引用自:https://unix.stackexchange.com/questions/236345