我正在尝试查找$
未跟随!
的实例。
除非$
和\\$
需要,否则必须[^!]
转义,[^\\!]
和[
转义,]
除外ag "\\$[^\!]"
bash: ^\!: syntax error: operand expected (error token is "^\!")
ag "\\$[^!]"
bash: !]: event not found
ag "\\$[^\\!]"
bash: ^\\!: syntax error: operand expected (error token is "^\\!")
ag "\\$[\\^\\!]"
bash: \\^\\!: syntax error: operand expected (error token is "\\^\\!")
ag "\\$[\^\!]"
bash: \^\!: syntax error: operand expected (error token is "\^\!")
也被逃脱了?不确定这一点 - 还不太了解bash。
ag "\\$\\[\\^\\!\\]"
ag "\\$\\[\\^\\!\\]"
ag "\\$\[\\^\\!\]"
ag "\\$\[\^\!\]"
ag "\$\[\^\!\]"
ag "\\$\[\^\!\]"
这些没有结果:
<label>Age From: </label>
<input type="text" ng-model="fromAge">
<label>Age To: </label>
<input type="text" ng-model="toAge">
<ul ng-repeat="item in data | filter: filterAge">
<li>
{{item.age}}
</li>
</ul>
答案 0 :(得分:5)
如有疑问,请使用单引号和字符类。
ag '[$][^!]'
!
被视为历史扩展字符(bash用shell历史记录替换命令的指令)。[$]
比\$
更清晰:如果我们 在不同类型的引用上下文中,\
可能会被该上下文消费;方括号不太容易被误解。 (如果有一个名为$
的文件并且我们处于一个完全没有引用的上下文中,那么它可以被视为一个glob表达式......但是这个问题要小得多。与反斜杠案有关。)另外,考虑到你并非瞄准手指与20世纪70年代和80年代的贝壳兼容,考虑在~/.bashrc
中加入以下内容,使!
字符不再特殊(在仅限交互式shell,使其行为偏离脚本):
set +H