명령에 대한 별칭이 있습니다(Python 개발 환경을 설정 중입니다).
alias python=~/virtualenv/bin/python
이렇게 하면 ~/virtualenv/bin/python
그냥 입력하고 실행할 수 있습니다 python
. 이제 프로젝트에 쉘 스크립트가 있습니다. 예를 들면 다음과 같습니다.
#!/bin/sh
python run-project.py
스크립트를 변경하지 않고도 스크립트 에서 찾은 별칭 python
대신 내 별칭을 사용하도록 할 수 있나요 ?python
$PATH
답변1
예.
별칭을 넣으면 ~/.aliases
할 수 있습니다
export BASH_ENV="~/.aliases"
somescript
이는 예측할 수 없기 #!/bin/bash
때문에 스크립트가 로 시작한다고 가정합니다 .#!/bin/sh
내 제안은 다음과 같습니다.
- ~/.bashenv 생성
- 스크립트에서 사용하려는 모든 설정을 ~/.bashrc에서 ~/.bashenv로 이동하세요.
- ~/.bashrc 상단에 다음을 추가하세요.
[ -f ~/.bashenv ] && source ~/.bashenv
BASH_ENV=~/.bashenv
/etc/environment 에 넣어주세요#!/bin/bash
스크립트가 아직 시작되지 않은 경우 다음으로 시작하십시오.
또는 zsh를 사용하는 경우 별칭을 ~/.zshenv로 이동하세요. zsh는 자동으로 이 파일을 찾습니다.
~/virtualenv/bin
하지만 아마도 그것을 앞에 두고 PATH
Python 스크립트를 #!/usr/bin/env python
첫 번째 줄로 변경하는 것이 더 쉬울 수도 있습니다 .
답변2
별칭 파일이 "~/.bash_alias”, 이것을 스크립트에 넣으세요:
#!/bin/bash
shopt -s expand_aliases
source ~/.bash_aliases
python run-project.py
(통과하다)
답변3
또는 언제든지 source
스크립트에서 별칭을 강제 적용할 수 있습니다. 예를 들어 rm
다음에 별칭이 있다고 가정해 보겠습니다 ~/.bashrc
.
alias rm='moveToTrash'
while moveToTrash
은 당신의 것입니다 /usr/bin
. 이제 다음과 같은 스크립트가 있습니다 test.bash
.
#!/bin/bash
which rm
직접 실행 하면 test.bash
출력을 볼 수 /bin/rm
있고 source test.bash
출력을 얻을 수 있습니다.
alias rm='moveToTrash'
/usr/bin/moveToTrash