별칭이 있고 이를 명령줄에 입력하면 별칭이 무시되고 -i 플래그가 없는 일반 rm 명령이 호출된다는 rm='/bin/rm -i'
것을 알고 있지만 왜 이런 일이 발생하는지 이해할 수 없습니다."rm" filename
나는 그것이 왜 작동하는지 이해하지 못합니다 "rm"
.
문자를 큰따옴표('"')로 묶으면 기록 확장이 활성화된 경우 '$', '`', '\' 및 '!'를 제외한 따옴표 안의 모든 문자의 리터럴 값이 보존됩니다. - [gnu.org ][ 1]
...하지만 어떻게든 작동합니다. 내 별칭을 무시합니다. 어떻게 작동하나요?
또한 조직의 Korn 셸 스크립트에서 이러한 별칭 무시 명령 호출을 볼 때도 있습니다. 하지만 그건 불필요한 일이겠죠? Korn 쉘 스크립트는 쉘 레벨 이름에 접근할 수 없기 때문에?
[1]:https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html#:~:text=Enleading%20characters%20in%20double%20quotes,POSIX%20Mode)%2C%20%20%27%20!
답변1
이는 매우 구체적인 경우입니다. 참조
https://www.gnu.org/software/bash/manual/bash.html#Aliases
모든 간단한 명령의 첫 번째 단어는인용없이, 별칭이 있는지 확인하세요. 그렇다면 해당 단어는 별칭의 텍스트로 대체됩니다.
매뉴얼의 이 섹션에서는 별칭의 몇 가지 혼란스러운 측면을 지적하고 다음으로 끝납니다.
거의 모든 목적에서 셸 함수는 별칭보다 우수합니다.