gpt4 book ai didi

string - 如何用 Salt 转义复杂的字符串?

转载 作者:行者123 更新时间:2023-12-01 12:33:15 57 4
gpt4 key购买 nike

我想使用 Salt 状态来更改系统网络上的 PROMPT_COMMAND,但我一直无法找出正确的字符串转义策略。提示命令为:

PROMPT_COMMAND='PS1="`if [[ \$? -eq "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi`\! \[\033[36m\]\u@\h \[\033[33m\]\W \[\033[0m\]$ "'

首先我尝试了:

/etc/bash.bashrc:
file.append:
- text:
- PROMPT_COMMAND='PS1="`if [[ \$? -eq "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi`\! \[\033[36m\]\u@\h \[\033[33m\]\W \[\033[0m\]$ "'

但是状态不会编译。我通过引用字符串并转义其中的嵌套实例,又尝试了两次(一次用单引号,一次用双引号)。都没有成功。然后我将指令放入文本文件 (bashrc.txt) 并尝试:

/etc/bash.bashrc:
file.append:
- source: salt://_fragments/bashrc.txt

但这也会破坏渲染系统,即使您会注意到我故意省略了一个 -template: jinja 参数。


Salt 或 Jinja 是否有一些其他转义机制可以抵御这个特别可怕的字符串中出现的无数嵌套刻度、引号和反斜杠?

最佳答案

你试过吗?

/etc/bash.bashrc:
file.append:
- text: |
PROMPT_COMMAND='PS1="`if [[ \$? -eq "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi`\! \[\033[36m\]\u@\h \[\033[33m\]\W \[\033[0m\]$ "'

关于string - 如何用 Salt 转义复杂的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31611761/

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