Почему псевдонимы в неинтерактивной оболочке Bash не работают

Лично я держу отдельный репозиторий, а затем использую атрибут [ http://svnbook.red-bean.com/en/1.0/ch07s03.html svn: externals].

SVN Externals позволяет вам ссылаться на другие репозитории (даже те, которые вы не запускаете, например, smarty subversion repo), когда вы запускаете svn update, ваш проект и внешний репозиторий будут обновлены.

с внешними SVN вы также можете ссылаться на конкретные ревизии, используя somethign, например, http://path-to-project.com/svn/thing -r1234 для выпусков и другие вещи, которые вам нужно сохранять статичными

Лучшая практика: всегда указывать ревизию, а затем обновлять номер ревизии внося изменения в разделяемую библиотеку, чтобы вы могли отслеживать ПОЧЕМУ вы обновили эти данные. также сохраняет все в здравом уме, когда вы помечаете или разветвляете основной проект.

44
задан pfnuesel 16 December 2014 в 12:17
поделиться

3 ответа

Команда shopt -s expand_aliases разрешит расширение псевдонима в неинтерактивных оболочках.

46
ответ дан 26 November 2019 в 22:09
поделиться

.bashrc обрабатывается только интерактивными оболочками.

В кроме того, псевдонимы не раскрываются, когда оболочка не интерактивна, если только параметр оболочки expand_aliases не установлен с помощью shopt . Если, конечно, режим POSIX не вызывается путем вызова оболочки с именем sh вместо bash .

Люди, которые часто используют псевдонимы, часто получают свои .bashrc в конце их профиля, так что псевдонимы присутствуют даже для неинтерактивных оболочек. Возможно, это не лучший способ, но он довольно распространен.

Это ' Подобные вещи наводят меня на мысль, что в 21 веке мы должны отказаться от сценариев оболочки в пользу полноценного языка, такого как Python. Это намного более предсказуемо.

15
ответ дан 26 November 2019 в 22:09
поделиться

Вы должны

shopt -s expand_aliases

в файле, указанном в вашем BASH_ENV

9
ответ дан 26 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: