我正在尝试扫描错误日志中有503错误的行,所以我正在寻找" 503
(引用空间503)。
这看似简单,但不起作用:
grep '" 503 ' access.log
我收到以下错误:
bash:-c:第0行:在寻找匹配的“”时出现意外的EOF bash:-c:第1行:语法错误:意外的文件结尾
答案 0 :(得分:12)
好像你是用某种语言通过某种系统()运行它,不是吗?尝试:
grep '\" 503 ' access.log
或:
grep "\" 503 " access.log
直接在shell中只有grep '" 503 ' access.log
才有效。为了重现你的问题,我必须这样做:
bash -c 'grep '\" 503 ' access.log'
这确实是语法错误。要做到这一点,我需要:
bash -c 'grep "\" 503 " access.log'
你以某种方式打电话给bash -c ...
。也许间接地。你需要弄清楚如何调用它来找出碰撞中的引号。
答案 1 :(得分:1)
要调试这样的奇怪效果,请使用“set -x”来显示shell扩展,以及计算机对您命令的看法。
答案 2 :(得分:0)
我相信我现在有效(不确定因为我没有结果,但没有收到错误)。
原因是因为我通过ssh命令传递它,如下所示,我相信SSH正在做一些逃避诡计:
ssh 123.123.123.123 grep '" 503 ' access.log
修改它似乎是修复:
ssh 123.123.123.123 "grep '\" 503 ' access.log"
感谢大家的时间。
答案 3 :(得分:0)
问题是由.bashrc
中的一些错误指令引起的。