대소 문자를 구분하지 않고 bash에서 명령을 찾을 수 있습니까?
예를 들어. 다음 명령줄은 항상 Python을 실행합니다.
python
Python
PYTHON
pyThoN
답변1
alias
한 가지 방법은 다음과 같은 쉘 내장 명령을 사용하는 것입니다 .
alias Python='python'
alias PYTHON='python'
alias Python='python'
alias pyThoN='python'
더 나은 접근 방식을 위해 command_not_found_handle()
이 게시물에 설명된 대로 기능을 사용할 수 있습니다.별칭의 정규식. 예를 들어 이렇게 하면 모든 명령이 소문자로 강제됩니다.
command_not_found_handle() {
LOWERCASE_CMD=$(echo "$1" | tr '[A-Z]' '[a-z]')
shift
command -p $LOWERCASE_CMD "$@"
return $?
}
불행히도 와 같은 내장 명령에서는 작동하지 않습니다 cd
.
.bashrc
또는(Bash 4.0을 사용하는 경우) 실행하기 전에 대문자 명령을 소문자로 변환하는 작은 함수를 파일에 추가할 수 있습니다 . 이것과 비슷한 것 :
function :() {
"${1,,}"
}
: Python
그런 다음 명령줄에서 명령을 호출하여 실행할 수 있습니다.
주석에서 @cas가 언급했듯이 :는 bash에서 예약어입니다. 따라서 불일치와 문제를 피하기 위해 c
아직 유지하지 않은 항목 으로 바꿀 수 있습니다 .