小编And*_*uik的帖子

bash变量扩展$ {var:+"..."}在这里 - 文档删除双引号?

我试图理解为什么Bash在使用${parameter:+word}(使用备用值)进行变量扩展时,在here-document中删除双引号(但不是单引号),例如:

% var=1
% cat <<EOF
> ${var:+"Hi there"}
> ${var:+'Bye'}
> EOF
Hi there
'Bye'
Run Code Online (Sandbox Code Playgroud)

根据手册,后面的"单词" :+用波浪扩展,参数扩展,命令替换和算术扩展处理.这些都不应该做任何事情.

我错过了什么?如何在扩展中获得双引号?

bash heredoc quoting expansion

23
推荐指数
2
解决办法
1603
查看次数

标签 统计

bash ×1

expansion ×1

heredoc ×1

quoting ×1