我正在编写一个 bash 脚本,使用 grep 搜索短语并将其打印在终端上。我希望用户能够使用 grep 的上下文选项(-C
,,)。我创建了一个索引数组,我想用它来制作 grep 的上下文参数(,,,-A
)。-B
ictx
-C NUM
-A NUM
-B NUM
-A NUM1 -B NUM2
ictx
对于如何使用下面列出的代码巧妙地处理制作,可以提供一些建议,这将有所帮助。
while (( $# > 0 )); do
case "$1" in
("-C"|"--context")
ctx="$2" ; shift ; shift ;;
("--Bfc"|"--before-context")
bfctx="$2" ; shift ; shift ;;
("--Afc"|"--after-context")
afctx="$2" ; shift ; shift ;;
esac
done
ictx=()
[ -n "$bfctx" ] && ictx+=( -B "$bfctx" )
[ -n "$afctx" ] && ictx+=( -A "$afctx" )
[[ -z "$ctx" ]] && ctx=8
(( ${#ictx[@]} == 0 )) && ictx+=( -C "$ctx" )
grep -ni "${ictx[@]}" -e "$ptrn" -- "$fl"