我在尝试使用时遇到这些错误:导出PS1 =' ascii text at the bottom'。
bash:命令替换:第1行:意外标记|'
bash: command substitution: line 1:
/ ^ \ |附近的语法错误| _)|'
bash:命令替换:第3行:意外标记|'
bash: command substitution: line 3:
附近的语法错误\ / \ / / _____ \ | | \ ---)|'
有人可以解释为什么这不起作用吗?
________________. ___ .______
/ | / \ | _ \
| (-----| |----`/ ^ \ | |_) |
\ \ | | / /_\ \ | /
.------) | | | / _____ \ | |\ \-------.
|_________/ |__| /__/ \__\| _| `.________|
____ __ ____ ___ .______ ________.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) || (-----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \---) |
\__/ \__/ /__/ \__\|__| `._______/
答案 0 :(得分:3)
PS1
不仅仅是一个普通的字符串;在其中,某些角色对他们有意义。您可以找到一个令人惊讶的长篇文档,告诉您有关bash提示的更多信息,而不是您想知道的here;它有点陈旧,但大部分应该仍然有效。你遇到的具体问题是,反斜线和反引号需要进行转义 - 反斜线,因为他们已经习惯了逃避的东西,反引号,因为他们使用的命令替换 - 和换行,最好更换{{1}控制序列以避免以\n
结尾的行发生意外。最终,你想要写作的效果
\
......这有点笨拙。一种在飞行中做到这一点的方法是让眼睛更容易
export PS1=' ________________. ___ .______ \n / | / \\ | _ \\\n | (-----| |----\`/ ^ \\ | |_) |\n \\ \\ | | / /_\\ \\ | /\n.------) | | | / _____ \\ | |\\ \\-------.\n|_________/ |__| /__/ \\__\\| _| \`.________|\n____ __ ____ ___ .______ ________.\n\\ \\ / \\ / / / \\ | _ \\ / |\n \\ \\/ \\/ / / ^ \\ | |_) || (-----\`\n \\ / / /_\\ \\ | / \\ \\\n \\ /\\ / / _____ \\ | |\\ \\---) |\n \\__/ \\__/ /__/ \\__\\|__| \`._______/'
此处PS1=' ________________. ___ .______
/ | / \ | _ \
| (-----| |----`/ ^ \ | |_) |
\ \ | | / /_\ \ | /
.------) | | | / _____ \ | |\ \-------.
|_________/ |__| /__/ \__\| _| `.________|
____ __ ____ ___ .______ ________.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) || (-----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \---) |
\__/ \__/ /__/ \__\|__| `._______/'
PS1="${PS1//\\/\\\\}"
PS1="${PS1//\`/\\\`}"
PS1="${PS1//
/\\n}"
export PS1 # <-- this isn't really necessary, by the way. PS1 is not
# usually used by processes the shell spawns.
是特定于bash的参数扩展,扩展为${variable//pattern/replacement}
的值,所有$variable
替换为pattern
。也就是说:
replacement