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