Intereting Posts
Как я могу создать скрипт bash, который запускает irb, а затем некоторый код ruby? Как определить успех программы при выполнении последовательности подобных задач? perf_events over ssh (osx -> linux) замерзает и не реагирует Объем экспортируемой переменной в оболочке Как я могу запретить редактируемые команды перезаписывать оригинал? Или вернуть изменения? Как сказать apt и все другие инструменты, чтобы показывать предложения? Как я могу ответить на приглашение в сценарии оболочки, работающем в фоновом режиме? Должно ли сообщение об использовании перейти на stderr или stdout? Вставка в середину строки с помощью sed Пакет Debian Tomee plus Rosetta Stone для Linux-дистрибутивов? Обратные прокси-серверы с несколькими бэкэнд-серверами Изменение размеров каталогов Можно ли отображать математические символы в терминале? / tmp в качестве tmpfs: Совместимость и безопасность

псевдонимы не работают в bash – login shell

У меня есть псевдоним, определенный в ~/.bashrc и ~/.bash_profile как:

 alias e='echo' 

Когда я запускаю команду как:

 bash -c 'e hello' 

Он показывает ошибку как:

 bash: e: command not found 

Но из интерактивной оболочки bash, когда я запускаю команду e hello , она печатает hello .

Если вы вызываете bash только:

 bash -c 'cmd' 

Тогда bash будет неинтерактивной оболочкой без входа, поэтому она не будет генерировать никакие rc-скрипты.

Если вы хотите получить ~/.bashrc , вызовите bash :

 bash -ic 'e hello' 

С -i флаг bash называется интерактивной оболочкой без входа. Затем bash ~/.bashrc файл ~/.bashrc .

добавить в .profile или аналогичный файл ~ / .bash_profile

 e(){ ECHO_COMMAND=`which echo` $ECHO_COMMAND "$@" } 

Переустановить или запустить

 test@term{~}:source .profile 

Попробуй это:

 test@term{~}:e hello hello