【问题标题】:Is there a way to save the command prompt into a variable and edit it?有没有办法将命令提示符保存到变量中并进行编辑?
【发布时间】:2020-10-09 13:23:15
【问题描述】:

一段时间以来,我一直在尝试使用 shell 脚本自定义我的 bash 命令提示符,但没有取得多大成功。

我正在尝试将提示变成这样,Pos 变量是我在代码中定义的字符串或 bash 命令。

PS1="[$PosZero][$PosOne][$PosTwo][$PosThree]$"

我尝试做的一件事是将当前命令提示符保存到一个变量中,并尝试看看我是否可以以某种方式编辑括号的内容,如下所示:

DEFAULT=$PS1

但我一直在努力解决的是在应用了自定义命令提示符后尝试编辑它。如果我试图只更改一个括号,我希望所有其他括号保留它们当时拥有的任何内容。相反,除非我将相同的信息传递给脚本中的变量,否则它们会自行擦除。

我一直在尝试寻找一种方法来解析 DEFAULT 值(其中包含 PS1 的内容)以取出括号的内容并将它们应用于 Pos 变量。但我不知道该怎么做。有人知道怎么做吗?

【问题讨论】:

  • 我不确定我是否正确理解了您的要求。您想要可以编辑的提示的扩展形式吗?喜欢PS1=ps1_value<keyboard cursor here>?
  • 是的,这就是我想要的。我正在尝试编写一个脚本,它为您提供四个位置(编号从 0 到 3),您可以在其中粘贴字符串或 bash 命令。我可以做一次就好了,问题是当我再次尝试这样做时,第一次给出的值被覆盖,我试图避免。

标签: bash command-prompt


【解决方案1】:

我想,这就是你想要的:

$ 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][]$ 

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2017-08-19
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2021-09-09
    • 2019-10-22
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多