我正在尝试编写一个bash脚本来重现失败的测试.
最初的命令是(说我们正在测试回声)
echo aa @p{0,1}=port bb
Run Code Online (Sandbox Code Playgroud)
打印:
aa @p0=port @p1=port bb
Run Code Online (Sandbox Code Playgroud)
我在变量中得到了参数
TESTCASE='aa @p{0,1}=port bb'
Run Code Online (Sandbox Code Playgroud)
所以我构建了命令行
CMD='echo '${TESTCASE}
Run Code Online (Sandbox Code Playgroud)
然后执行它
${CMD}
Run Code Online (Sandbox Code Playgroud)
我得到:
aa @p{0,1}=port bb
Run Code Online (Sandbox Code Playgroud)
即花括号不会像在命令行上那样扩展
发生了什么,我该如何解决?
使用数组存储多个参数,而不是常规参数.在设置数组参数的值之前,括号扩展将应用于括号内的字符串.
test_case=( aa @p{0,1}=port bb )
Run Code Online (Sandbox Code Playgroud)
使用函数存储代码,而不是常规参数.
cmd () {
echo "${test_case[@]}"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |