Use a variável de ambiente em keybinding .inputrc

0

Gostaria de adicionar um atalho ao meu .inputrc que coloca o valor de uma variável de ambiente, USER , na linha de comando.

Eu tentei todos os tipos de escape, mas a string $USER está escrita na linha de comando, não o valor dessa variável de ambiente.

$if mode=vi
  # Keymaps when we are in insert mode
  set keymap vi-insert

  # Insert path before mountpoint
  "C-e": "/run/media/$USER"

Existe uma maneira razoável de fazer isso com .inputrc ou estou melhor usando outros meios como .bashrc ?

    
por Matthias Braun 15.05.2018 / 19:34

2 respostas

3

A dica do usuário meuh para usar shell-expand-line me levou a esta solução que coloca o valor da variável de ambiente na linha de comando:

$if mode=vi
  # Keymaps when we are in insert mode
  set keymap vi-insert

  # Expand variables like ~ and $USER to their values
  "\C-a": shell-expand-line
  # Insert path before mountpoint, then expand the variable
  "\C-e": "/run/media/$USER/\C-a"

Agora, pressionar Ctrl + e resulta em /run/media/me/ na linha de comando.

    
por 15.05.2018 / 21:15
2

Inserir a string literal $USER em vez do valor expandido da variável USER pode não fazer uma grande diferença, já que a variável é provavelmente definida com o valor apropriado (assumindo um sistema Linux) e seria expandida pelo concha.

Isso responde a uma encarnação anterior da pergunta:

Você não pode usar variáveis de ambiente em .inputrc .

Para incorporar o nome de usuário do usuário atual no prompt principal do bash , defina PS1 como um valor contendo a seqüência de escape \u .

Consulte a seção "PROMPTING" no manual bash .

    
por 15.05.2018 / 19:43