我运行下面的命令来搜索文本文件,并显示一个漂亮的输出:猛砸别名与参数失败
$ grep -rnI "SEARCHTERM" . | sed 's/\:\s\+/\:\n/g'
./path/filename.php:LINENUMBER:
This line contains SEARCHTERM
但是当我尝试运行它作为一个别名,我得到一个错误:
$ alias lookfor="grep -rnI '\\!^' . | sed 's/\:\s\+/\:\n/g'"
$ lookfor SEARCHTERM
sed: can't read SEARCHTERM: No such file or directory
任何想法为什么我的别名失败?我敢肯定这是某种引用问题...
什么是“$ @”的呢?它是否等同于.bashrc中的$ PWD?另外,当我做这样的事情时,这个脚本似乎并没有工作(它一直在等待搜索路径):function igrep(){grep -r $ 1“$ @”| grep -v“.svn”;} – Arpith
''$ @“'代表”替换所有赋给命令的参数“。因为'$ @'在引号中,所以也意味着“如果需要引用,请正确引用每个引号”。 EG,如果您键入“lookfor”foo bar“baz”,则“foo bar”baz(包括引号)将传递给grep命令。 (它在实现上稍微复杂一些,但你仍然可以这样思考)。 –