作为自变量传递给自制脚本的过程,我注意到文件系统对该变量进行了评估,否则就作为参数传递了。那不是我想要的行为
提供该代码
#!/bin/bash
declare -a array_arg
#build the array of arguments
while test -n "$1"; do array_arg+=( "$1" ); shift
done
#test there is some arguments
if test ${#array_arg[@]} -eq 0; then echo "ERROR no arguments"
fi
#running resume
echo "number of elements:: ${#array_arg[@]}"
for ((i = 0; i < ${#array_arg[@]}; i++ )); do echo "$i>> ${array_arg[i]}"
done
我希望传递相同的参数列表,我将进入array_arg数组
但是,如果任何参数具有通配符,并且与文件匹配,它将使用文件名来解析
让我们看一个例子:
让我们观察一下,第二个参数
file2 *
说明中的方法
array_arg+=( "$1" )
向数组添加两个文件名,而不是$ 1的值
最后一个参数时,不要更改/解决/任何...
不用说,我需要传递给脚本的参数,而不是经过评估的
答案 0 :(得分:0)
./test.sh "file1" "file2" "file3"
这会很好的运行。