bash - 是否可以强制 bash 对其值包含引号的变量进行就地扩展?
问题描述
考虑以下简单函数。
X() {
echo "$1"
echo "$2"
echo "$3"
}
现在考虑以下变量:
args="-H 'h1 : v1'"
当我运行命令X $args
时,我得到以下输出:
-H
'h1
:
另一方面,如果我运行 command X -H 'h1 : v1'
,我会得到以下输出:
-H
h1 : v1
请注意,在后一种情况下,变量值内的引号被正确解释为分隔符。
是否可以修改变量的声明或使用变量的调用以强制上面的两个输出相等?
解决方案
这就是数组的用途。
$ args=(-H 'h1: v1')
$ printf '%s\n' "${args[@]}"
-H
h1 : v1
推荐阅读
- c# - 使用异步方法将实时信息更新到标签或其他面板
- javascript - 如果完成,RxJs 最后一个,否则在值之间插入延迟
- arrays - 将空格分隔的文本文件读入哈希数组 [Perl]
- angular - p-footer 不是 p-dialog 中的已知元素错误
- rx-swift - RxSwift - 使用发布主题的按钮点击
- angularjs - 我有这样的代码需要为现有代码使用for循环
- android - 如何获得像素颜色(带像素坐标)?
- android - Retrofit2 应用程序崩溃或提供意外输出
- bash - 使用 && 和 || 结合不工作
- java - 在 JSP 中进行表单验证和提交后,选定的标签消失