.inputrc 키 바인딩에서 환경 변수 사용

.inputrc 키 바인딩에서 환경 변수 사용

명령줄 .inputrc에 환경 변수 값을 입력하는 키 바인딩을 my에 추가하고 싶습니다 .USER

다양한 이스케이프를 시도했지만 문자열은 $USER해당 환경 변수의 값이 아니라 명령줄에 그대로 기록됩니다.

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

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

이를 수행하는 합리적인 방법이 있습니까 .inputrc? 아니면 다른 방법을 사용하는 것이 더 낫습니까 .bashrc?

답변1

사용자 meuh의 사용 팁을 shell-expand-line통해 명령줄에 환경 변수 값을 입력하는 이 솔루션을 찾을 수 있었습니다.

$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"

Ctrl이제 +를 누르면 명령줄에 e나타납니다 ./run/media/me/

답변2

$USER변수의 확장된 값 대신 리터럴 문자열을 삽입하면 USER변수가 올바른 값(Linux 시스템 가정)으로 정의될 수 있고 셸에 의해 확장되므로 큰 차이가 없을 수 있습니다.


이것은 질문의 이전 버전에 대한 답변입니다.

당신은 에 있을 수 없습니다 .inputrc.

현재 사용자의 사용자 이름을 bash기본 프롬프트 에 병합하려면 PS1이스케이프 문자열이 포함된 값을 설정하세요 \u.

"팁"이라고 표시된 설명서 섹션을 참조하세요 bash.

관련 정보