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
但是,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
這實際上將變數設置
cmd2
為meminfo並評估重定向。你應該引用這個。
cmd2='meminfo > /tmp/top.txt'
**編輯:**這會在目標上創建文件。根據您自己的答案,您想在執行腳本的系統上創建它(未在您的原始問題中說明)。原因仍然有效,但解決方案無效。
用於
alias cmd2="meminfo > /tmp/top.txt"
創建別名命令,而不是使用名為cmd2
.