bib*_*ann 4 arrays bash quotes
我想调用一个带有从 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)
"${array[@]}"是正确的。该-x选项只是选择一种规范的方式来显示需要引用的值,并且'-arg2="some spaces"'相当于"-arg2=\"some spaces\"".
| 归档时间: |
|
| 查看次数: |
1892 次 |
| 最近记录: |