是否有办法使${VAR}
扩展为双引号形式?
这不是我想看到的:
% A="some spaces in there"
% touch ${A}
% ls -1
in
some
spaces
there
当然,我可以使用像
"$VAR"
这样的典型符号。但是在引用的文本中使用引号等会很麻烦。我想知道是否有一种扩展${…}符号的方法可以将${...}
视为"${...}"
而不使用双引号本身? 最佳答案
不遵循accepted best practice(并学习贝壳是如何工作的)很可能会咬伤你。反复。带着僵尸病毒感染的尖牙。一些有用的东西:
只要开始引号和结束引号相邻,就可以对单个参数的不同部分使用不同的引号:
$ printf '%q\n' "foo 'bar' baz"'nuu "boo" zoo'
foo\ \'bar\'\ baznuu\ \"boo\"\ zoo
您可以在子shell中设置
IFS
,以避免弄糟整个脚本:$ a="some spaces in there"
$ (IFS= && touch ${a})
$ ls -1
some spaces in there
关于linux - bash中变量的空格和花括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27040682/