有一个非常讨厌的表达式想要使用 bash 进行回显。
表达式为:
'one two --
注意:--
后有空格。
所以我有:
IFS=
echo 'one$IFStwoIFS--$IFS
但结果是:
one$IFStwo$IFS--$IFS
最佳答案
您的方法几乎没有问题:
- 单引号内的变量不会在 shell 中扩展
- 在字符串
one$IFStwo$IFS--$IFS
中,$IFS
的第一个实例将不会扩展,因为您有字符串two
$IFS
旁边,因此它尝试扩展不存在的变量$IFStwo
。 $IFS
的默认值为$'\t\n'
您可以使用:
echo "one${IFS}two$IFS--$IFS"
将扩展为(cat -A
输出):
one ^I$
two ^I$
-- ^I$
关于bash - 在 bash 中使用 IFS 而不是空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655663/