Arquivo da área de trabalho para abrir o terminal com um prompt alternativo

3

Eu quero criar um arquivo .desktop , que abre um terminal com um prompt, que exibe a hora atual e o diretório de trabalho atual na cor verde. Eu consegui isso através do comando:

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

indica isso:

(14:30:12) media$ 

Para este comando criei o seguinte arquivo .desktop :

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

Acho que faço algo errado ao passar a variável, mas não sei exatamente o que, você pode me ajudar a descobrir qual é o problema?

A razão para isso é ganhar vários arquivos .desktop com os quais posso abrir diferentes terminais com prompts diferentes.

    
por h0ch5tr4355 20.10.2015 / 09:12

1 resposta

2

Isso funciona, mas pode ser uma solução menos adotada.

Solução de problemas

A partir da minha observação, há dois problemas: $SHELL está sendo chamado após o comando export PS1 , e os prompts bash das cores são codificados incorretamente

  • A execução de $SHELL criará um novo prompt. Isso causou tudo o que foi feito antes, ou seja, export PS1 se torna inútil, já que o novo prompt substituirá os anteriores.

  • Outra questão é provavelmente alguns erros de digitação. Não encontrei nenhum motivo para deixar o colchete unilateral [ ser aberto.

Este documento indicou que deve ser incluído.

% bl0ck_qu0te%

A solução alternativa

Use o arquivo .bashrc separado por configuração diferente de PS1 . Em seguida, execute bash que chama outra opção bash com --init-file para executar o prompt usando o arquivo .bashrc separado.

Siga os passos abaixo.

  1. Crie um arquivo vazio com nome diferente, por exemplo, .bashrc2 no diretório Início .

  2. Abra o arquivo em um editor de texto, copie e cole o seguinte (revisado).

    export PS1="\[3[0;32m\](\$(date +%H:%M:%S)) \W$ \[3[0m\]"     
    
  3. Salve e feche o arquivo.

  4. Crie outro arquivo vazio com nome diferente, por exemplo, shortcut2.desktop no Desktop .

  5. Abra o arquivo em um editor de texto, copie e cole o seguinte.

    [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. Salve e feche o arquivo.

  7. Por fim, clique duas vezes no atalho (agora aparece como Terminal 2 no Desktop ) para executar o prompt.

Repita as etapas para outras configurações, se houver, dando nomes diferentes, por exemplo, .bashrc3 , shortcut3.desktop e outras.

O inexplicado

A execução de bash --init-file $HOME/.bashrc2 sozinho não incluirá a configuração PS1 . O prompt resultante será descolorido e retornará ao formato [\u@\h:\w]$ . Em outras palavras, o arquivo .bashrc2 é totalmente ignorado. É por isso que o shell aninhado é necessário.

    
por clearkimura 20.10.2015 / 14:56