繁体   English   中英

bash参数在脚本中带有引号

[英]bash arguments with quotes in script

我正在尝试在bash中构造对程序的(复杂)调用。

该程序需要一个文件列表,其中文件名可能包含空格。

我将调用构造如下:

for VAR in $ARR; do
    CALL_ARGS+=" \"${VAR}.csv\""
done

然后使用./program ${CALL_ARGS}调用程序

例如,当$VAR"abc" ,我想拥有./program "abc" ,但是得到的是'"a' b 'c.csv"' ,这显然被错误地引用了。

我已经在StackOverflow上看到过类似的问题/答案,但似乎没有一个适用于我的问题。

处理Bash中可能包含空格(或其他各种字符)的项目列表的最简单,最安全的方法是使用数组。 例如:

files=('a b c' 'd e' f)
args=()

for f in "${files[@]}" ; do
    args+=( "$f".csv )
done

./program "${args[@]}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM