我正在尝试echo
在 Puppet 规则中使用来添加一行.bashrc
,但我似乎无法正确引用。
'/usr/bin/echo -E PS1=\"[\t--------------------------------------------------------\n-\u@\h:\W]\$\" >> /home/unu/.bashrc'
这件事给了我以下结果:
PS1="[t--------------------------------------------------------n-u@h:W]$"
另一种尝试:
'/usr/bin/echo -E PS1="[\t--------------------------------------------------------\n-\u@\h:\W]\$" >> /home/unu/.bashrc'
这件事给了我以下信息:
PS1=[\t--------------------------------------------------------\n-\u@\h:\W]$
另一个:
'/usr/bin/echo -e PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$" >> /home/unu/.bashrc'
这个给了我这个:
PS1=[ --------------------------------------------------------
-\u@\h:\W]$
\
如果没有或"
以某种方式解释,我似乎无法找到一种方法来做到这一点。我该怎么做?
我想过使用更多引号,但这会导致 Puppet 出现语法错误:
"/usr/bin/echo -e 'PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$"' >> /home/unu/.bashrc"
得到这个结果:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Syntax error at '' (file: /etc/puppetlabs/code/environments/production/modules/profile/manifests/ps1.pp, line: 3, column: 38) on node centoslave1
这是整个代码:
class profile::ps1 {
exec { 'myps1':
command => "/usr/bin/echo -e 'PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$"' >> /home/unu/.bashrc"
}
}