
여기 내 일부가 있습니다..bashrc
alias my_command="my_command -1 -2 -3"
그리고 내 쉘 스크립트
#!/bin/sh
my_command blah blah blah
오류가 발생합니다
./aa: line 2: my_command: command not found
그렇다면 명령에 대한 별칭을 올바른 방식으로 정의하는 방법은 무엇입니까?
답변1
대화형 셸에서 발생하는 두 가지 작업(별칭 확장 및 의 소싱 .bashrc
)은 스크립트를 실행할 때 발생하지 않습니다. 스크립트 상단에 다음을 추가해 볼 수 있습니다.
source ~/.bashrc # To get the alias
shopt -s expand_aliases # To allow alias expansion in your script
mycommand
쉘 기능으로 변경하는 것을 고려할 수도 있습니다 . 그러면 스크립트에서 별칭 확장을 활성화할 필요가 없습니다.
mycommand () {
my_command -1 -2 -3 "$@"
}
답변2
alias my_command="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java"
이 유형 이후
source .bashrc
입력한 후 source .bashrc
오류가 발생합니까?
답변3
특정 버전의 Java를 사용하려는 경우 그에 따라 변수를 정의 JAVA_HOME
하고 설정할 수 있습니다 PATH
.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java
export PATH=$PATH:export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
단지 별칭 설정에 관한 것이라면 사용한 구문이 올바른 것입니다(물론 일부 유효한 명령도 포함).
alias lm="ls -l"