0
我有一個shell腳本,它從兩個日期之間的日誌文件中提取詳細信息,並在輸出上執行命令以生成一些報告。日誌文件位於不同的服務器上,腳本在不同的服務器上執行。腳本看起來像:從shell腳本在另一臺linux服務器上遠程執行命令
#!/bin/sh
time1=$1
time2=$2
echo `ssh -i key [email protected] -yes cat file | awk '{if(substr($4,2)>="'$time1'" && substr($4,2)<="'$time2'") print $0;}'` > tmp.log
`cat tmp.log | some operation to get detail`
預計將在多行的輸出喜歡:
ip1 date1 - - request1 file1 method1 status1
ip2 date2 - - request2 file2 method2 status2
但是所產生的輸出(通過我的命令)得到連接成單個線,包含所有細節,如:
ip1 date1 - - request1 file1 method1 status1 ip2 date2 - - request2 file2 method2 status2
當命令直接執行它產生所需的輸出而不是在遠程執行的服務器上。
所以我的問題是我將如何得到正確的輸出,這是一個好辦法嗎?
反引號中的'echo'不僅愚蠢,而且錯誤。只需用'whatever'替換'echo''無論什麼''。另請參閱http://porkmail.org/era/unix/award.html#echo – tripleee 2015-02-23 09:18:38
刪除反引號不會產生任何輸出。 – anand 2015-02-23 09:31:36
謝謝我反駁了** \ n **。所以我所做的就是在**「」**內部添加命令,像這樣:'echo「\'command \'」' – anand 2015-02-23 09:55:57