我有这个脚本:
#!/bin/bash -x
NEW_ARGS=()
for (( i=1; i <= "$#"; i++ )) do
if [ -f "${!i}" ]; then
NEW_ARGS+=" $(basename ${!i})"
else
NEW_ARGS+=" ${!i}"
fi
done
wine /usr/local/bin/red-063.exe ${NEW_ARGS[@]}
注意 中的前导空格NEW_ARGS+=" ${!i}"
。
如果我不这样做,请${NEW_ARGS[@]}
连接并作为一个参数传递给wine /usr/local/bin/red-063.exe
,例如:
redwin -t -f /home/mark/projects/learn/red_learn/a.red
...
wine /usr/local/bin/red-063.exe -t-fa.red
我可以添加这些空间,但感觉“不自然”。有没有办法像传递一样将数组传递给 Bash 中的命令$*
?
向数组中添加新元素,而不是连接第一个元素中的所有内容:
然后逐个元素传递整个数组: