这不应该工作吗?它看起来应该从info
页面开始。
echo ${[email protected]}
bash: ${[email protected]}: bad substitution
我做错了什么? 谢谢。
编辑:我拿出了我的命令提示符......这是一个旧的BSD,看起来像stderr重定向。我的错。
这不应该工作吗?它看起来应该从info
页面开始。
echo ${[email protected]}
bash: ${[email protected]}: bad substitution
我做错了什么? 谢谢。
编辑:我拿出了我的命令提示符......这是一个旧的BSD,看起来像stderr重定向。我的错。
我是个白痴。我正在阅读info
从一台机器(版本4.4.0(2) - 发布(sparc-sun-solaris2.7))页面,而另一个版本(版本4.2.46(1) - 发布(i386-redhat-linux -gnu))。
看来${@Q}
表示法是新的。
在bash-4.4输出为:
echo ${[email protected]}
$' \t\n'
使用'printf'%q \ n'“$ IFS”'来兼容旧shell。 –
哦,我喜欢'printf%q'。谁知道我打什么bash?我已经找到了一台没有关联数组的机器(bash-3?),并且不得不重新编写一堆代码。 –
什么是你想要做什么呢? – z3nth10n
在bash-4.4'$ {PARAMETER @ OPERATOR}' 扩展或者是PARAMETER 的值的变换或者PARAMETER本身的信息,具体取决于操作符的值 。每个操作员都是单个字母: 'Q' 扩展是一个字符串,它是以可重新用作输入的格式引用的PARAMETER 的值。 –
预期产出/结果是什么?首先,您不能将stderr重定向到另一个进程,但可以通过将stderr管道连接到另一个进程。但是,我无法看到“echo $ {IFS @ Q}”应该用管道来完成什么。最后,我看不出$ {IFS @ Q}应该做什么。你能解释一下你想要发生什么吗? –