假设我有这个搜索词:
grep -i -r --include=*.xib "img_28301.png" ./
我将如何创建一个允许我这样做的别名:
xibsearch img_28301.png
并做同样的事情?
答案 0 :(得分:4)
为此设置一个功能会更清晰:
xibsearch() {
grep -i -r --include=*.xib "$1" ./
}
由于别名不支持位置参数。
答案 1 :(得分:1)
正如@anubhava指出的那样,功能通常是这里的方式。
但是,在这种情况下,如果你必须使用别名,你可以按如下方式重新排列grep:
alias xibsearch='grep -i -r --include=*.xib -f - ./ <<<'
-f -
告诉grep使用文件中的表达式,但由于这里的w文件是-
,因此从stdin中读取表达式。然后我们使用bash here-string将字符串的内容重定向到stdin。这允许将grep表达式放在命令的末尾,这是别名工作所需的。
因此,如果你打电话:
xibsearch img_28301.png
别名将解析为以下命令:
grep -i -r --include=*.xib -f - ./ <<< img_28301.png
如果我是你,我会使用该功能; - )。