解决方案:
我最终得到了bash数组,我的解决方案是here。
问题:
在bash中,我可以拥有一个参数有空格的函数,我可以使用$@
或$*
来获得正确的引用:
$ _() { ruby -e 'p ARGV' "$@"; }; _ 'a b c' '1 2 3'
["a b c", "1 2 3"]
$ _() { ruby -e 'p ARGV' "$*"; }; _ 'a b c' '1 2 3'
["a b c 1 2 3"]
我正在构建一个字符串,其中参数可以包含空格,并且希望它的行为类似于"$@"
,是否有办法执行此操作?
$ arg1="a b c"
$ arg2="1 2 3"
$ args="$arg2 $arg2"
# behaves like $*, but I want it to behave like $@
$ ruby -e 'p ARGV' "$args"
["1 2 3 1 2 3"]
$ ruby -e 'p ARGV' $args
["1", "2", "3", "1", "2", "3"]
答案 0 :(得分:2)
$ args=()
$ args+=("a b c")
$ args+=("1 2 3")
$ ruby -e 'p ARGV' "${args[@]}"
["a b c", "1 2 3"]