防止bash脚本的参数全局化

时间:2018-01-28 02:38:24

标签: find arguments glob

我想使用我传递给myscript的参数调用myscript中的“find”命令。但是如果我使用带有“-name”参数的通配符并且任何文件碰巧匹配字符串,则无论我使用什么样的“引号”,字符串都会扩展为所有文件名。

在shell中,我想要通配,但是当我将参数传递给这个脚本时。例如:

TOTAL_PRICE_STATUS_ESTIMATED

有优雅的解决方案吗?

1 个答案:

答案 0 :(得分:1)

解决方案似乎是添加一行

set -o noglob

到脚本。现在我们有了

#!/bin/bash
set -o noglob
for arg in $@
do
    printf '%s' "arg="
    printf '%s' "$arg"
    printf '\n'
done
find . $@

~/u/tmp/JNK> ./myscript -name "*Jam*"
arg=-name
arg=*Jam*
./for-Henry-James.txt
./Henry-James.txt
~/u/tmp/JNK>