Титла: Псевдоними в изпълним низ? Публикувано от: go_fire в Nov 17, 2015, 11:24 Преди малко ми се случи нещо странно. Не мога да поставям псевдоним в най-обикновен bash script. Предполагам, че, ако го заредя от друг документ със source може и да стане. И да, не е фатално, че не работи, просто ще си изпиша цялата команда. И все пак ми стана интересно това, защо е така. Някой да има някаква идея?
п.п. На shell scripting съм на ниво детската ясла и много неща не са ми ясни; п.п.п. За да не съм голословен, нека си създадем примерче: Код
Титла: Re: Псевдоними в изпълним низ? Публикувано от: neter в Nov 17, 2015, 12:17 Първо, когато изпълняваш скрипт, за него се създава нов неинтерактивен шел, а по подразбиране alias-ите не играят в неинтерактивни шелове. За да им позволиш да играят, добави си следния ред в началото на скрипта (след указателя за шела):
Код: shopt -s expand_aliases Второ, имай предвид, че alias командите влизат в сила след задаване на exit кода им, т.е., след пълното им изпълнение, което значи, че не трябва да слагаш други команди на същия ред, отделени от alias командата с ";" или "&&", които разчитат alias-ът да действа при тяхното изпълнение. В твоя пример си ги вписал добре, но не би имал успех ако напишеш някое от тези: Код: alias lh="ls -lrth"; lh Трето, не виждам каква ти е ползата да си играеш с ръчно въведени alias-и в скрипт, вместо да си ги задаваш с променливи. Например: Код
Титла: Re: Псевдоними в изпълним низ? Публикувано от: go_fire в Nov 17, 2015, 13:38 Направо ме разби. Остави ме безмълвен. Отивам да си тегля куршума, колко съм прост ☹
Титла: Re: Псевдоними в изпълним низ? Публикувано от: getqwerty11 в Nov 17, 2015, 14:15 Направо ме разби. Остави ме безмълвен. Отивам да си тегля куршума, колко съм прост ☹ Бре, по-полека де, някой ще се подхлъзне. Много си интересен. |