gpt4 book ai didi

ruby - Chef 提示无效的 Unicode 转义

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:46 25 4
gpt4 key购买 nike

我想在我的 .bash_profile 中设置以下内容

bash_profile_content = %Q(
export EDITOR=vi
export ENV=#{role}
export PATH=$PATH:/usr/local/bin
export PS1="${debian_chroot:+($debian_chroot)}\u@\h:\w [$ENV]\$ "
)

file '/home/me/.bash_profile' do
cotent bash_profile_conent
end

Chef 抛出这个错误:

==> Server-002: [2015-10-07T03:02:23+00:00] ERROR: Exception handlers complete
==> Server-002: Chef Client failed. 0 resources updated in 322.419863736 seconds
==> Server-002: [2015-10-07T03:02:23+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> Server-002: [2015-10-07T03:02:23+00:00] ERROR: /var/chef/cache/cookbooks/servers/recipes/_common_user.rb:67: invalid Unicode escape
==> Server-002: ...ian_chroot:+($debian_chroot)}\u@\h:\w [$ENV]\$ "
==> Server-002: ...

显然 chef 认为 @ 字符用于 unicode 转义。

我想按原样使用@。我该如何解决这个错误?

最佳答案

这不是真正的问题,\u 才是。例如:

irb > "\u@"
SyntaxError: (irb):1: invalid Unicode escape
"\u@"
^

但是:

irb > "\u0611"
=> "ؑ"

请记住,%Q(...) 的行为类似于双引号字符串,因此适用所有常见的转义符(例如 \u 用于 Unicode)。添加更多反斜杠应该可以解决问题:

bash_profile_content = %Q(
export EDITOR=vi
export ENV=#{role}
export PATH=$PATH:/usr/local/bin
export PS1="${debian_chroot:+($debian_chroot)}\\u@\\h:\\w [$ENV]\\$ "
)

关于ruby - Chef 提示无效的 Unicode 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com