在Bash中如何执行以数组形式存储的命令?
执行Shell数组中保存的命令的方法
对于你给出的示例数组:
myarr=( echo hello you )
想要将其作为完整命令执行,直接使用以下写法即可:
"${myarr[@]}"
执行后效果和直接运行echo hello you完全一致,会输出hello you。
- 该写法会严格保留数组每个元素的参数边界,即使数组元素包含空格、引号等特殊字符也能正确解析,是当前场景下最安全的执行方式。
- 不要使用
${myarr[*]}、不带引号的$myarr这类写法,这类写法会触发Shell的单词拆分规则,在参数包含特殊字符时会出现预期外的解析错误。
内容的提问来源于stack exchange,提问作者IsaIkari
相关产品推荐
相关产品推荐

