【发布时间】:2018-05-14 12:12:22
【问题描述】:
我的 bashrc 文件中有一个方便的函数,如下所示:
function get_pattern()
{
grep "P1" $1 | grep -v "BUT_NOT_THIS" | awk -F":" '{print $(1)}' | sort -u
}
alias gp='get_pattern'
如果我在像gp file_1.c 这样的单个文件上运行它,这会很好。但是我无法像find . -name "*.c" -type f | xargs gp 那样运行它。我也无法像gp *.c 那样运行它。如何编写 get_pattern 代码,以便获得所有这些便利。
注意:我已经简化了函数以便于理解。不期待智能 grep/awk/sed/sort hack 或调整。问题是我有一个将文件名作为参数的别名。希望它与管道一起使用,最好是与 glob 一起使用。
【问题讨论】:
-
在函数中使用别名是一种反模式!只需单独使用该函数并将参数传递给它
-
使用别名是一种反模式!
-
Shell 别名最好用作交互式使用的命令行快捷方式,以节省键入时间。它们不适合编写脚本。
标签: bash shell scripting command-line-arguments alias