我想调用一个带有从 bash 中的数组构建的参数的程序。
我想要 bash 调用:
echo -arg1=simple -arg2="some spaces"
Run Code Online (Sandbox Code Playgroud)
来自array=(echo -arg1=simple "-arg2=\"some spaces\"")或类似(我可以调整项目的创建方式)。
使用"${array[@]}"bash 调用:
echo -arg1=simple '-arg2="some spaces"'
Run Code Online (Sandbox Code Playgroud)
但我不想要单引号。如何正确构建和扩展数组?
#!/bin/bash
set -x
array=()
array+=(echo)
array+=(-arg1=simple)
array+=("-arg2=\"some spaces\"")
"${array[@]}"
"${array[*]}"
${array[@]}
${array[*]}
Run Code Online (Sandbox Code Playgroud)
echo -arg1=simple '-arg2="some spaces"'
'echo -arg1=simple -arg2="some spaces"'
echo -arg1=simple '-arg2="some' 'spaces"'
echo -arg1=simple '-arg2="some' 'spaces"'
Run Code Online (Sandbox Code Playgroud)