별칭을 정의할 때 작은따옴표 또는 큰따옴표가 있습니까?

별칭을 정의할 때 작은따옴표 또는 큰따옴표가 있습니까?

이렇게 큰따옴표의 내용은 확장되고 작은따옴표의 내용은 확장되지 않는 것으로 알고 있습니다.

echo '$1'

주어진

$1

하지만

echo "$1"

주어진

<the argument - blank in this particular example>

그리고

echo $1

그러나 문제는Bash: 매개변수를 사용하여 awk에 대한 .bashrc에 별칭을 만드는 방법왜 큰따옴표와아니요별칭을 선언할 때 작은따옴표를 사용하십시오.

alias cutf="_cutf"

바꾸다

alias cutf='_cutf'

이후 예제에서와 같이 작은따옴표를 사용하겠습니다. 웹상의 대부분의 예제는 일부 확장이 필요하지 않는 한 싱글톤을 사용합니다. 하지만 이 경우에는 뚜렷한 확장이 없는 것 같습니다. 이 경우 서로 바꿔서 사용할 수 있습니까? 아니면 큰따옴표가 필요합니까?기능 정의취업했습니까?

답변1

이것은 OP의 특정 질문에 대한 답변이 아니라 제목(나를 여기로 데려온)에 의해 제기된 질문에 대한 답변입니다.

작은따옴표는 동적으로 평가됩니다.

alias QS='echo $PWD'

큰따옴표는 생성 시 평가되며 이후에는 변경되지 않습니다.

alias QD="echo $PWD"

bash, zsh 및 다른 쉘에서도 동일한 동작이 발견됩니다.

답변2

언급한 예에서 별칭의 확장은 확장의 영향을 받는 문자를 포함하지 않는 단어이므로 이름을 참조하는 방법에는 차이가 없습니다 _cutf.

$ alias cutf="_cutf"
$ alias cutf
alias cutf='_cutf'

$ unalias cutf
$ alias cutf='_cutf'
$ alias cutf
alias cutf='_cutf'

$ unalias cutf
$ alias cutf=_cutf
$ alias cutf
alias cutf='_cutf'

cutf이 상호 작용에서 볼 수 있듯이 별칭 값을 호출할 때마다 동일한 결과가 제공됩니다. 그렇습니다. 여기서 인용 스타일은 서로 바꿔서 사용할 수 있습니다.

확장은 함수 이름과 아무 관련이 없습니다. 적어도 bash에서는 별칭이 간단한 텍스트 교체를 수행합니다(별칭을 정의하는 것이 유용하다는 것은 나에게는 분명하지 않습니다. 기본 함수를 직접 호출하는 것은 간단해 보입니다).

답변3

매우 간단합니다. 변수가 없으면 괄호를 서로 바꿔서 사용할 수 있습니다. 쉘 스크립팅은 매우 유용하지만 매우 간단한 언어이기도 합니다. 나(그리고 내가 아는 몇몇 다른 사람들)는 습관적으로 큰따옴표를 기본으로 사용하는 경향이 있으며 문제가 발생한 적이 없습니다.

관련 정보