Linux bash 脚本:如何将命令行放入变量中?

时间:2021-03-27 00:18:00

标签: linux bash

我有一个关于 bash 脚本的问题,我想将部分 find 表达式放到变量中。我在示例中更好地展示了我想要的内容。我有这样的事情:

find $DIR -type f -name "$NAME" $SIZE $CONTENT_COM;;

我想在 $CONTENT_COM 中放入这样的内容:(完全像这样)

-exec grep -l "$CONTENT" {} +

对于 $SIZE 我做了这个:

SIZE=${SIZE/$SIZE/-size $SIZE};

我想为 $CONTENT_COM 制作这个(它看起来和我想要的很相似,只需将 -size $SIZE 等更改为这样

CONTENT_COM=${CONTENT_COM/$CONTENT/-exec grep -l "$CONTENT" {} +} 

但它不起作用。 ({} +} <---- 编辑器错误) 有没有办法把这样的表达式放到变量中然后使用它?

1 个答案:

答案 0 :(得分:2)

是的,您可以use arrays to build up commands with arbitrary arguments,例如:

search_term='some regex'
content_command=('grep' '-l' "$search_term")
find . -exec "${content_command[@]}" {} +

还有,Use More Quotes™