微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash,在 printf 语句中获取 ' 字符

如何解决bash,在 printf 语句中获取 ' 字符

我发现很难在别名中嵌套 printf 语句。我有许多我想提供的帮助主题(只是一些在我忘记语法时有用的提示的集合)。我发现 printf 要求 \ 转义为 \\% 转义为 %%。但是,我的问题更多地与 '"

有关
alias helpx='printf "A note about 'vim'.\n"'
=> A note about vim.   # The ' are ignored.

alias helpx="printf 'A note about 'vim'.\n'"
=> A note about vim.   # The ' are ignored.

alias helpx='printf "A note about \'vim\'.\n"' # Invalid Syntax

alias helpx='printf "A note about \"vim\".\n"'
=> A note about "vim".   # Some progress,I can Now get " here

如何在上面的笔记中获取 ' 个字符?

解决方法

在 unix 终端上使用 printf-command 时,您可以执行以下操作来转义字符:

 printf "A note about \'vim\'.\n"

由于您有兴趣将此命令分配给变量(您的别名“helpx”),您至少可以通过两种不同的方式来实现:

  • 如果您对 ASCI 标点符号有亲和力,那么无需过多处理字符转义,然后使用上述解决方案

    alias helpx='printf "A note about \u0027vim\u0027.\u000A"'
    
  • 如果您对 ASCI 标点符号没有兴趣

    使用@tshiono 提出的答案

希望这对将来处理此类问题也有帮助。

,

请你试试:

alias helpx='printf "A note about '\''vim'\''.\n"'

或:

alias helpx="printf \"A note about 'vim'.\\n\""

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。