有没有办法将命令提示符保存到变量中并进行编辑?
Is there a way to save the command prompt into a variable and edit it?
一段时间以来,我一直在尝试使用 shell 脚本自定义 bash 命令提示符,但收效甚微。
我正在尝试将提示变成这样的东西,Pos 变量是字符串或我在代码中定义的 bash 命令。
PS1="[$PosZero][$PosOne][$PosTwo][$PosThree]$"
我尝试做的一件事是将当前命令提示符保存到一个变量中,然后尝试看看我是否可以以某种方式编辑括号中的内容,如下所示:
DEFAULT=$PS1
但我一直在努力解决的问题是在已经应用一个自定义命令提示符后尝试对其进行编辑。如果我只想更改一个括号,我希望所有其他括号保留它们当时的任何内容。相反,除非我将相同的信息传递给脚本中的变量,否则它们会自行删除。
一直在想办法把DEFAULT值(里面有PS1的内容)解析出来,把括号里的内容应用到Pos变量上。但我不知道该怎么做。有人知道怎么做吗?
我想,这就是你想要的:
$ PS1='[$PosZero][$PosOne][$PosTwo][$PosThree]$ ' #Note: Use single quotes here, or escape $ as $
[][][][]$ PosZero=abcd
[abcd][][][]$ PosOne=pqrs
[abcd][pqrs][][]$ PosZero=1234
[1234][pqrs][][]$ PosTwo=xyz
[1234][pqrs][xyz][]$ unset PosZero
[][pqrs][xyz][]$ PosOne=
[][][xyz][]$
一段时间以来,我一直在尝试使用 shell 脚本自定义 bash 命令提示符,但收效甚微。
我正在尝试将提示变成这样的东西,Pos 变量是字符串或我在代码中定义的 bash 命令。
PS1="[$PosZero][$PosOne][$PosTwo][$PosThree]$"
我尝试做的一件事是将当前命令提示符保存到一个变量中,然后尝试看看我是否可以以某种方式编辑括号中的内容,如下所示:
DEFAULT=$PS1
但我一直在努力解决的问题是在已经应用一个自定义命令提示符后尝试对其进行编辑。如果我只想更改一个括号,我希望所有其他括号保留它们当时的任何内容。相反,除非我将相同的信息传递给脚本中的变量,否则它们会自行删除。
一直在想办法把DEFAULT值(里面有PS1的内容)解析出来,把括号里的内容应用到Pos变量上。但我不知道该怎么做。有人知道怎么做吗?
我想,这就是你想要的:
$ PS1='[$PosZero][$PosOne][$PosTwo][$PosThree]$ ' #Note: Use single quotes here, or escape $ as $
[][][][]$ PosZero=abcd
[abcd][][][]$ PosOne=pqrs
[abcd][pqrs][][]$ PosZero=1234
[1234][pqrs][][]$ PosTwo=xyz
[1234][pqrs][xyz][]$ unset PosZero
[][pqrs][xyz][]$ PosOne=
[][][xyz][]$