2012-01-30 4 views
0

У меня есть набор псевдонимов, определенный в ~/.aliases, который я хотел бы сделать доступным для sh, даже если он запущен не интерактивно. Моя система была настроена обычным способом, так что sh символическая ссылка на bash.Есть ли способ расширить псевдонимы в неинтерактивной оболочке sh?

Когда Баш запускается неинтерактивно, как bash, это могло бы с помощью shopt -s expand_aliases вместе с установкой $ENV или $BASH_ENV, чтобы (прямо или косвенно) источника ~/.aliases.

bash Но когда вызывается не интерактивно, как sh, кажется, игнорировать $ENV и все загрузочные файлы, так что я не могу видеть способ сделать это. Есть идеи? Или это просто невозможно?

+0

вы пробовали '~/.bash_aliases'? Взгляните на http://wiki.ubuntuusers.de/alias. Он работает над моей коробкой. –

ответ

2

Один из способов заставить скорлупу быть интерактивными при запуске сценария используется -i, таких как:

$ bash -i <script> 

Кроме того, обратите внимание, что если ваш скрипт имеет права на выполнение, вы можете заменить:

#!/bin/bash 

с:

#!/bin/bash -i