大家好
这是一个更大函数的一部分,但是我收到此错误并且无法找出问题所在:
脚本名称“connected.sh”
运行这个
cat "$logfile" | grep "$searchstring"
完美返回结果,但是当我将其插入到 bash 函数中时,使用以下代码:(这是第 41 行,第 40 行我创建了 tempout 文件&第 41 行是一个简单的回显)
"$(cat "$logfile" | grep "$searchstring")" >> "$tempout"
这打印在终端上:
./connected.sh: line 41: Fri Nov 6 14:29:14 2015 us=68416 xyz/x.x.x.x.184:44595 MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12
Fri Nov 6 14:29:27 2015 us=606987 xyz/x.x.x.x:40223 MULTI: primary virtual IP for xyz/1x.x.x.x:40223: 10.0.0.10
Fri Nov 6 15:46:58 2015 us=712031 xyz/x.x.x.x4:54911 MULTI: primary virtual IP for xyz/x.x.x.x:54911: 10.0.0.12: No such file or directory
是什么原因导致此“./connected.sh:第 41 行:...没有此文件或目录”
答案1
"$(cat "$logfile" | grep "$searchstring")" >> "$tempout
执行 grep 在 $logfile 中找到的行(这就是外括号开头的“$”的作用),然后将输出存储在 $tempout 中。从您的解释来看,您似乎试图将 grep 找到的行重定向到 $tempout。这将会是:
cat "$logfile" | grep "$searchstring" >> "$tempout"
这就是你想做的事吗?