我想查找脚本文件,我需要从这些文件中获取所有解释器的列表,如Bash,sh等。
为了找到它,我使用:
grep "#!/bin/*" ./*
但它显示:
-bash: !/bin/*": event not found
我认为我需要以某种方式逃避#符号,但我没有在BRE的文档中找到要转义的符号。
我怎样才能在文件的第一行找到包含此模式的文件?
答案 0 :(得分:2)
#
没问题,你应该逃避!
,在Bash中它指的是 a 上一个命令,必须跟一些东西,{{ 1}}表示上一个命令或表示历史记录中命令索引的数字。 (这是亚伦的纠正)
您也可以将$
更改为*
喜欢.*
如果您不想转义grep "#\!/bin/.*"
,请使用单引号,如:
!
您也可以使用grep '#!/bin' ....
regex
匹配
答案 1 :(得分:0)
请您尝试按照查找命令告诉我这是否有帮助。
find -type f -exec grep -l '#!/bin*' {} \+
答案 2 :(得分:0)
使用!
:
\
grep "#\!/bin/*" ./*