为什么 bash 有时会拒绝接受我的命令,只是简单地开始一个以大于号开头的新行而不是执行命令?每次按下 enter 都会添加一个新行,而逃避这一点的唯一方法似乎是点击Ctrl+ C。
例如:我有时需要限制笔记本电脑风扇速度的一个小命令不再起作用:
RegenbogenBook:Resources Vincent$ smc -k F0Mx -w $(python -c 'print hex(2800 << 2)[2:]’)
>
>
>
Run Code Online (Sandbox Code Playgroud)
我的印象是我只是遗漏了一些非常明显的东西,但是这种基本的东西没有包含在任何常见问题解答中,也没有通过搜索访问......
kar*_*rao 17
您可能正在从文档中剪切和粘贴命令(或其中的一部分),而不是手动输入。通常这没有任何区别,但在这种情况下,第二个引号字符被插入为“右单引号”(’
)而不是“撇号”('
)。区别很微妙——有关更多详细信息,请参阅此页面:
http://en.wikipedia.org/wiki/Quotation_mark_glyphs
发生这种情况的原因可能是,当您第一次在文档中键入命令以保存以供将来参考时,您的文字处理器会自动将第二个撇号转换为正确的单引号。这样做是为了使字符在屏幕上看起来更漂亮,但是 bash 不会将此字符识别为有效的结束引号,因此您遇到了问题。它打印“ >
”以提示进一步输入,因为它仍然认为原始引用尚未关闭。
解决方法是将该字符更改为撇号——只需从键盘手动将其重新键入 bash。您还可以在文档中更正它,以便以后的剪切+粘贴工作正常进行。