Existe uma interface baseada em cursor para alterar variáveis de ambiente?

0

Muitas vezes preciso alterar uma pequena parte da variável de ambiente longa (especialmente, por exemplo, caminhos) e fazer isso colando a coisa em um editor e alterando-a para lá, ou o equivalente.

Existe algum pequeno utilitário de conveniência para editar variáveis de ambiente com um cursor na linha de comando?

Eu suponho que eu poderia sempre agitar um, mas estou esperando que já haja algo que eu simplesmente não conheço.

    
por Catskul 22.09.2011 / 04:11

2 respostas

1

Isto é o que eu uso (a sintaxe do ksh, mas também deve funcionar com o bash):

function viPath
{
  typeset _path=${1:-PATH}
  typeset _separator=${2:-:}
  eval echo "\$$_path" | tr $_separator '\n' >~/.path
  vi ~/.path
  eval _path=$(cat ~/.path | tr '\n' $_separator)
  eval ${1:-PATH}=$(eval echo $_path | sed 's/.$//')
  \rm ~/.path
}
    
por 22.09.2011 / 06:05
0

Não consigo pensar em um que permita a edição interativa diretamente na linha de comando, mas há maneiras de torná-lo mais conveniente do que o que você está descrevendo. Se é uma mudança de curto prazo e você só precisa adicionar algo ao caminho, você pode fazer referência automática ao valor atual. Por exemplo, no Bash:

PATH=$PATH:/ADDITIONAL/PATH

Ou se você quiser alterar a precedência, você pode prefixar com

PATH=/ADDITIONAL/PATH:$PATH

Você também pode salvar um recorte e colar fazendo eco do valor em um arquivo temporário

echo $PATH > tempfile.txt

Se você tiver alterações mais complexas ou permanentes para fazer, poderá fazer referência e editar suas variáveis de ambiente em seu arquivo rc e / ou de perfil equivalente. Se eles ainda não estiverem presentes, você poderá usar o método echo para colocá-los em um estado editável (apenas certifique-se de usar > > para anexar em vez de sobrescrevê-los). Ou, no vi, você também pode usar

:r!echo $PATH

No emacs, seria

C-u M-! echo $PATH

Para inserir a saída no arquivo em que você está trabalhando.

    
por 22.09.2011 / 05:38