【发布时间】:2016-05-23 18:59:59
【问题描述】:
我有一个适配器代码,它通过 SSH 在 Linux 机器上执行一些特定的命令。它执行命令并以指定的方式处理每个命令的输出。
面临的问题非常简单。
我正在连接到使用颜色的 Bash 提示符。以下是 PS1 变量的详细信息:
PS1="\[\033[1;34m\][\$(date +%H%M)][\u@\h:\w]$\[^[[0m}\]"
代码使用正则表达式,它首先决定一个有效的终端,然后继续执行命令。
例如,.*\$ 被认为是有效的
我似乎无法正确处理[^[[0m},并且代码无法将终端识别为有效终端。如果我从 PS1 变量中删除它,一切正常。
谁能建议可以输入哪些正则表达式以便代码将其视为有效终端?
【问题讨论】:
-
可以使用扩展的正则表达式吗?我讨厌不得不逃避元字符...
-
我不太确定。也许我可以。是的,我不知道如何逃脱。有前进的线索吗?
-
等等,PS1 是不是正则表达式?能否提供更多代码?
-
是的。不幸的是,这就是我目前所拥有的一切:/。如果我可以更改代码,可以尝试更多的东西
-
您可能想尝试看起来相似的
PS1=\[\e[0;37m\]\D{%R}\[\e[1;34m\] \h:\w> \[\e[0m\]。例如02:16 alchemy:~/dev/src-c/tmp/tst>
标签: regex linux terminal prompt ansi-escape