【发布时间】:2021-03-22 20:22:39
【问题描述】:
脚本如下;当我手动运行它时,没有问题,但是
#!/bin/bash
/usr/bin/sudo /usr/sbin/tcpdump -i any -Z user -s 0 -v port xxx or xxx -w - | ssh root@xx.xx.xx.xx -C 'cat - > /opt/pcap/trace.`date +\%s`' .&
sleep 10
pkill tcpdump
exit
sh -x 输出如下。可能是什么问题?
cat .: 是一个目录
【问题讨论】:
-
为什么
&前面有一个点? -
在后台工作
-
我没想到会有这个答案。只需删除点。
-
问题是cat:.:是一个目录,
-
最初的问题是您在命令末尾使用了
.&而不仅仅是&——.被视为ssh的一个参数,它将其视为要执行的远程命令的一部分,它被视为cat的参数,后者将其视为要读取的文件名......并且因为它是一个目录而出现错误。只需删除.(在cat .命令中,cat和.之间的空格很重要)。