![셸의 별칭을 셸에서 실행되는 스크립트로 어떻게 전달합니까? [복사]](https://linux55.com/image/135741/%EC%85%B8%EC%9D%98%20%EB%B3%84%EC%B9%AD%EC%9D%84%20%EC%85%B8%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%EB%90%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A0%84%EB%8B%AC%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
쉘에서 스크립트로 별칭을 전달하는 방법을 알고 싶습니다. 감사해요.
$ cat myscript
#!/bin/bash
alias
$ ./myscript
$
답변1
별칭으로 인해 스크립트가 예기치 않게 동작할 수 있으므로 스크립트를 시작하기 전에 별칭을 의도적으로 지웁니다.
이론적으로는 스크립트 내에서 별칭을 정의할 수 있지만 그러한 스크립트가 전달되는 경우
. scriptname
도트 스크립트는 실행 전에 완전히 구문 분석되므로 이러한 새 별칭은 스크립트 내에서 허용되지 않습니다. 별칭이 유효하려면 파서가 이에 대해 알아야 하며 파서가 별칭에 대해 알기 위해서는 먼저 다음이 필요합니다. alias
쉘 내장을 실행합니다 .
따라서 스크립트에 별칭을 사용하지 마십시오. 입력을 더 쉽게 할 수 있지만 한 번 작성되었지만 여러 번 실행되는 스크립트에는 작동하지 않습니다.