我有一个适配器代码,可以通过SSH在Linux机器上执行某些特定命令。它执行命令并以指定的方式处理每个命令的输出。
面临的问题非常简单。
我正在连接到使用颜色的Bash提示符。以下是PS1变量的详细信息:
PS1="\[\033[1;34m\][\$(date +%H%M)][\u@\h:\w]$\[^[[0m}\]"
代码使用regex,它首先决定一个有效的终端,然后继续执行这些命令。
例如,.*\$
被视为有效
我似乎无法正确处理[^[[0m}
,并且代码无法将终端识别为有效终端。如果我从PS1变量中删除它,一切正常。
有人可以建议输入正则表达式,以便代码将其作为有效终端吗?
答案 0 :(得分:-1)
我认为您上面提供的PS1变量已被破坏。
我在终端窗口中运行了以下实验:
[guest@localhost ~] $ export PS1="\\[\033[1;34m\\][\$(date +%H%M)][\u@\h:\w]$\\[^[[0m}\\]"
[2137][guest@localhost:~]$^[[0m}
正如您所看到的,^[[0m}
未被正确解释。我假设它是提示中颜色的结尾。我认为它应该是\\[\033[0m\\]
。
这是整个PS1变量:
PS1="\\[\033[1;34m\\][\$(date +%H%M)][\u@\h:\w]$\\[\033[0m\\]"
经过测试,你得到了这个:
[2137][guest@localhost:~]$^[[0m}export PS1="\\[\033[1;34m\\][\$(date +%H%M)][\u@\h:\w]$\\[\033[0m\\]"
[2139][guest@localhost:~]$