我有一个关于 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" {} +}
但它不起作用。 ({} +} <---- 编辑器错误) 有没有办法把这样的表达式放到变量中然后使用它?
答案 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™!