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

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

  • postfix expand ldap group И впоследствии разрешить псевдоним
  • bashrc ленивая замена
  • Установите псевдоним на оболочку Bourne
  • Улучшить существующий псевдоним для динамической замены текста в командной строке
  • source my ~ / .bash_aliases из скрипта не в ~ /
  • Псевдоним, похоже, не читается из STDIN
  • Почему требуется перезагрузка ежедневной .zshrc с использованием псевдонима, содержащего $ (date -u +% Y% m% d)?
  • Помогите написать функцию 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 содержится заявление

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

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

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