별칭에 포함된 달러 기호를 적용하지 않고 별칭을 정의하려면 어떻게 해야 합니까?

별칭에 포함된 달러 기호를 적용하지 않고 별칭을 정의하려면 어떻게 해야 합니까?

나는 별칭을 가지고 있습니다 : alias gwanip=echo "$(dig +short myip.opendns.com @resolver1.opendns.com). 이것은 bashrc를 얻을 때마다 dig 명령을 실행한다는 것을 방금 깨달은 것을 제외하고는 잘 작동합니다. 기능을 유지하면서(즉, gwanip을 호출하는 내 IP를 에코) bashrc가 소스될 때마다 실행하지 않으려면 어떻게 해야 합니까?

답변1

달러 기호를 피하거나 쓸모 없는 부분을 제거 echo $( ... )하면 됩니다.

alias gwanip="dig +short myip.opendns.com @resolver1.opendns.com"

또는 대신 쉘 함수를 사용하십시오.

function gwanip {
  dig +short myip.opendns.com @resolver1.opendns.com
}

shortdig쉘 함수를 사용하면 보다 일반적인 함수를 생성하고 호출 할 수도 있습니다 .

function shortdig {
  dig +short "$1" "$2"
}

function gwanip {
  shortdig "myip.opendns.com" "@resolver1.opendns.com"
}

설명서에는 bash다음 내용이 포함되어 있습니다.

거의 모든 목적에서 별칭은 쉘 함수로 대체됩니다.

답변2

달러 기호를 없애면 됩니다.

관련 정보