쉘 스크립트에서 터미널의 현재 별명을 인쇄하는 방법이 있습니까? 명령 줄에 alias
을 간단하게 입력하면 인쇄 할 수 있지만 스크립트를 실행할 때 인쇄해야합니다.쉘의 현재 별명을 인쇄하십시오
0
A
답변
2
Bash에는 쉘 변수 BASH_ALIASES
이 있습니다.이 변수는 별칭 이름과 별칭을 값으로 사용하는 연관 배열입니다. 이 같은 예를 들어, 인쇄 할 수 있습니다 다음 %q
형식 사양이 명령을 재사용 인용 있는지 확인합니다
for key in "${!BASH_ALIASES[@]}"; do
printf '%s=%q\n' "$key" "${BASH_ALIASES[$key]}"
done
.
release notes으로 언급하지 않았으므로이 기능이 도입되었을 때 확실하지 않습니다. 연관 배열에는 Bash 4.0 이상이 필요합니다.
이 변수는 환경 변수가 아닌 쉘 변수이므로 서브 쉘 (예 : 비 대화식 스크립트를 실행할 때)에서는 사용할 수 없습니다.
당신은 다음,하지만 당신의 별명 선언 예를 이것에 대한 포함 파일 ~/.aliases.sh
에 있다고 가정 할 수있는 :
alias ll='ls -l'
스크립트 다음 할 수는
source ~/.aliases.sh
for key in "${!BASH_ALIASES[@]}"; do
printf '%s=%q\n' "$key" "${BASH_ALIASES[$key]}"
done
ll # Won't work! "ll: command not found"
shopt -s expand_aliases # Turn on alias expansion
ll # Works!
그래서 BASH_ALIASES
것 별칭 선언을 소싱 한 후에 채워지지만 expand_aliases
쉘 옵션을 설정할 때까지 실제로 사용할 수 없습니다.
+0
인덱싱 된 배열에서 (bash <'4.0'을 사용하는 경우) 그들을 캡쳐하는 또 다른 비슷한 방법은'IFS = $ '\ n'; a = ($ (alias | sed 's/^ 별칭 [] //'))' –
관련 문제
- 1. Shebang과 현재 쉘의 관계
- 2. Emacs 쉘의 원격 폴더에있는 현재 폴더가 횡설수설합니다
- 3. 쉘의 오류
- 4. 특수 형식으로 현재 UTC datetime을 인쇄하십시오.
- 5. TracePoint를 사용하여 출력 창에 현재 시간을 인쇄하십시오.
- 6. 파이썬에서 현재 사용자의 로그인 셸을 인쇄하십시오.
- 7. bash를 사용하여 현재 날짜를 csv로 인쇄하십시오.
- 8. 디렉토리의 내용을 쉘의 현재 디렉토리로 복사하는 방법은 무엇입니까?
- 9. 쉘의 작업 디렉토리를 vim에서 열린 현재 파일로 설정하십시오.
- 10. C : 현재 쉘의 별명 나열 (서브 쉘이 아님)
- 11. 이맥스에 별명을 만드시겠습니까?
- 12. virtualhost proxypass에서 별명을 제외하십시오.
- 13. 유니온 결과에 별명을 붙이기
- 14. 설치된 rpm에 별명을 추가하십시오.
- 15. 속성에 별명을 추가하는 방법
- 16. 쉘의 && 및 || 쉘에서 파이썬
- 17. SWT 쉘의 JEditorPane 포함
- 18. Perl에서 Unix 쉘의 '-x'옵션
- 19. 쉘의 기능은 무엇입니까
- 20. 자체 C 쉘의 역사
- 21. Bash 쉘의 [[] "대 [[]] 대
- 22. 파워 쉘의 시도 캐치는
- 23. rbash 쉘의 GNU 옥타브
- 24. C 유닉스 쉘의 파이프
- 25. 응용 프로그램과 쉘의 차이점
- 26. OS와 쉘의 차이점은 무엇입니까?
- 27. 파워 쉘의 문제
- 28. Windows에서 ssh 쉘의 이맥스
- 29. 쉘의 동시성 제어
- 30. 이것은 Bash 쉘의 버그입니까
왜 'alias'를 실행하는 스크립트가 없습니까? '#!/bin/bash'와'alias' 두 줄을 길게 만드십시오. 또는 나는 무엇인가 놓치고 있냐? – Mort
터미널에 앨리어스 만 입력하면 별칭의 전체 목록이 표시되고 저장하려면 해당 파일을 리디렉션합니다. 그것을 과장하지 마십시오. – LethalProgrammer
예, @ LethalProgrammer가 맞고 심지어 간단한 해결책조차 너무 깁니다. 거기에는 이미 스크립트가 있으며'alias'라고합니다. 원하는 경우 $ (별명) "'을 스크립트에 echo 할 수 있습니다. – Mort