Bash 스크립트에 Alias를 도입하는 방법
alias의 사용
일상적인 개발에서 운영 효율을 높이기 위해 우리는 알리스(명령 별명)로 명령의 약칭을 정의할 것이다.예를 들어
~/.bash_profile
에 추가:
alias ll='ls -lrt --color'
alias bdebug="go build -gcflags '-N -l'"
alias py3='/usr/bin/python3'
source ~/.bash_profile
을 실행하면 이 알리스 정의가 현재 터미널 환경에 불러옵니다. alias <cmd>
을 통해 볼 수 있습니다.
$ alias ll
ll='ls -lrt --color'
$ alias bdebug
bdebug='go build -gcflags '\''-N -l'\'
명령줄에서alias를 실행해도 예상 효과를 볼 수 있습니다
$ ll
total 44
-rw-rw-r-- 1 liyang liyang 62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang 68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang 74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test
Bash 스크립트에 Alias를 도입하는 문제
그러나 때때로 우리는 명령을 간소화하기 위해
~/.bash_profile
에서 정의된alias를 Bash 스크립트에 도입하기를 희망한다.예:스크립트 파일 테스트.sh
#!/bin/bash
source ~/.bash_profile
ll
테스트를 수행합니다.sh 파일이 잘못 보고됩니다.
$ bash test.sh
test.sh: line 5: ll: command not found
이것은 Bash에서alias가 기본적으로 Bash 스크립트에 도입할 수 없기 때문입니다.Bash의 공식 문서는 사실 function
대신 alias
를 사용하는 것을 권장합니다.그럼 문제가 생겼어요. 제가 이렇게 많은alias를 고생스럽게 썼으니 모두function으로 바꿀 수는 없겠죠. 얼마나 힘들겠어요?다행히 해결 방법은 아직 있다.
해결 방법
테스트만 하면 돼요.sh에 한 줄 추가
shopt -s expand_aliases
새 스크립트 파일
#!/bin/bash
shopt -s expand_aliases
source ~/.bash_profile
ll
실행해 봐, 과연 성공했어, 이게 왜?
$ bash test.sh
total 48
-rw-rw-r-- 1 liyang liyang 62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang 68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang 74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test
-rw-rw-r-- 1 liyang liyang 64 Mar 8 21:33 test.sh
관건은 shopt -s expand_aliases
라는 말에 있다. shopt
명령이다. 이 명령을 사용하면 셸과 관련된 스위치를 제어할 수 있다. expand_aliases
그 중 하나이다. 이 명령이 켜지면 Bash 스크립트의 모든 명령 별명 alias
이 전개된다.expand_aliases
If set, aliases are expanded as described below under Aliases, Aliases. This option is enabled by default for interactive shells.
총결산
shopt -s expand_aliases
를 통해 상술한 문제를 해결할 수 있다.https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
Bash 스크립트에서 Alias를 도입하는 방법에 대한 이 글은 여기까지 소개되었습니다. 더 많은 Bash 스크립트에서 Alias를 도입하는 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘솔에서 모든 텍스트를 LINE에 알릴 수있는 자체 제작 명령 준비데이터 분석이나 기계 학습 등으로 장시간의 처리를 콘솔상에서 실행할 때, 처리의 도중 경과나 종료를 LINE 로 통지받을 수 있으면 편리하네요. 그래서 인수로 지정한 텍스트를 LINE 으로 통지해 주는 커멘드를 자작...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.