백 슬래시는 별칭 확장을 억제합니다. 즉, 원래 명령을 실행하고 별칭 버전이 실행되지 않도록합니다. 시스템이 설정 shopt -s expand_aliases
되었거나 (BASH 만 해당) 또는를 사용하여 스크립트를 실행하면 스크립트가 별칭 확장으로 무의식으로 실행될 수 있습니다 source
.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
일부 시스템 관리자는 별칭의 부작용에 대비하여 백 슬래시를 방지하기 위해 백 슬래시를 사용하려고합니다. 예를 들어, 시스템이이를 alias dirname='dirname -z'
어딘가에 설정 하고 조건이 별명을 확장 할 수 있도록 허용하는 경우, dirname을 호출하는 스크립트는 불행히도 dirname -z
대신 호출 됩니다. 스크립트는 의도하지 않았습니다.
이러한 별칭이 존재하지 않는 것이 확실한 경우 모든 백 슬래시를 제거 할 수 있으며 제대로 작동합니다.
또는 command
백 슬래시 버전 대신 별칭을 사용 하지 않을 수 있습니다 . 따라서을 대신하여을 \dirname
사용할 수 있습니다 command dirname
. (와 같은 내장 명령의 cd
경우 builtin
대신 사용해야 합니다). 대신 별칭과 같은 이름을 가진 함수를 우회하기 때문에 이것을 선호합니다.