Как определить псевдоним без выполнения знаков доллара, содержащихся внутри?

У меня есть псевдоним: alias gwanip=echo "$(dig +short myip.opendns.com @resolver1.opendns.com) . Это отлично работает, но я просто понял, что он выполняет команду dig каждый раз, когда bashrc является источником. его функциональность (т. е. echo my ip up call gwanip), но без нее каждый раз запускается bashrc?

  • псевдоним ssh с локальным переадресацией
  • Псевдоним команды для уничтожения остановленных заданий
  • Что такое псевдоним?
  • Как создать псевдоним, который принимает аргумент в KornShell
  • Могу ли я установить значения по умолчанию для rsync в режиме без демона?
  • Как использовать - как псевдоним?
  • Совместное использование псевдонимов и настроек PATH между zsh и bash
  • Как предотвратить преждевременное выполнение $ () при создании псевдонима
  • 2 Solutions collect form web for “Как определить псевдоним без выполнения знаков доллара, содержащихся внутри?”

    Побег над значком доллара или удаление бесполезного 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 содержится заявление

    Для почти всех целей псевдонимы заменяются функциями оболочки.

    Побег над знаками доллара делает трюк.

    Linux и Unix - лучшая ОС в мире.