我想在 .zshrc 中使用 ack-grep 别名。这是我的别名现在的样子:
alias 'ack'='ack-grep -C -i -G --match'
但我需要的是从中输入字符串:
% ack string1 string2
里面
alias 'ack'='ack-grep -C -i -G string1 --match string2'
这个怎么做?
更新
这是有效的代码:
ack() {
case $# in
1) args="$1";;
2) args="$1 -G $2";;
*) args="$@";;
esac
eval "ack-grep -iC $args"
}
就我而言,我需要eval
使用多个变量。
更新 2
没有安全问题的更新代码:
ack () {
if (( $# == 2 )); then
ack-grep -iC "$1" -G "$2"
elif (( $# == 1 )); then
ack-grep -iC "$1"
else
echo 'Sorry, function works only for one and two params. In other case use ack-grep. Reread .zshrc'
fi
}