桌面文件打开终端并显示其他提示

桌面文件打开终端并显示其他提示

我想创建一个。桌面文件,它将打开一个带有提示符的终端,以绿色显示当前时间和当前工作目录。我通过以下命令实现了这一点:

$ PS1="\033[0;32m(\$(date +%H:%M:%S)) \W$ \033[0m"

给出以下提示:

(14:30:12) media$ 

对于此命令我创建了以下内容。桌面文件:

[Desktop Entry]
Version=1.0
Name=Open Terminal
Comment=Open Terminal with modified Prompt
Exec=bash -c 'export PS1="\033[0;32m(\$(date +%H:%M:%S)) \W$ \033[0m";$SHELL'
Icon=utilities-terminal
Terminal=true
Type=Application
Categories=Application;

我认为我在传递变量时做错了什么,但我不知道具体是什么,你能帮我找出问题所在吗?

这样做的原因是获得几个.desktop文件,我可以用不同的提示打开不同的终端。

答案1

这是可行的,但可能不是那么常用的解决方案。

故障排除

据我观察,有两个问题:$SHELL在命令后被调用export PS1,以及颜色 bash 提示符编码不正确

  • 运行$SHELL会创建一个新的提示符。这会导致之前所做的任何操作export PS1都变得毫无用处,因为新的提示符会覆盖之前的提示符。

  • 另一个问题可能是一些拼写错误。我找不到任何理由让单边方括号[保持打开状态。

本指南注意到它应该被封闭。

如前所述,非打印转义序列必须包含在\[\033[\]。对于颜色转义序列,它们后面还应跟一个小写m

解决方法

.bashrc针对不同的配置使用单独的文件PS1。然后,运行调用bash另一个选项的文件,bash使用--init-file单独的文件运行提示.bashrc

请遵循以下步骤。

  1. 创建一个具有不同名称的空文件,.bashrc2目录。

  2. 在文本编辑器中打开该文件,复制并粘贴以下内容(已修订)。

     export PS1="\[\033[0;32m\](\$(date +%H:%M:%S)) \W$ \[\033[0m\]"     
    
  3. 保存并关闭文件。

  4. 创建另一个具有不同名称的空文件,shortcut2.desktop桌面

  5. 在文本编辑器中打开该文件,复制并粘贴以下内容。

     [Desktop Entry]
     Version=1.0
     Name=Terminal 2
     Comment=Open Terminal with .bashrc2
     Exec=bash -c 'bash --init-file $HOME/.bashrc2'
     Icon=utilities-terminal
     Terminal=true
     Type=Application
     Categories=Application;
    
  6. 保存并关闭文件。

  7. 最后,双击快捷方式(现在显示为2 号航站楼桌面) 来运行提示。

如果有的话,对其他配置重复这些步骤,通过赋予不同的名称,即.bashrc3shortcut3.desktop等等。

无法解释的

单独运行bash --init-file $HOME/.bashrc2将无法包含PS1配置。生成的提示将变色并恢复为[\u@\h:\w]$格式。换句话说,.bashrc2文件被完全忽略。这就是为什么需要嵌套 shell。

相关内容