Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: go_fire в Nov 17, 2015, 11:24



Титла: Псевдоними в изпълним низ?
Публикувано от: go_fire в Nov 17, 2015, 11:24
Преди малко ми се случи нещо странно. Не мога да поставям псевдоним в най-обикновен bash script. Предполагам, че, ако го заредя от друг документ със source може и да стане. И да, не е фатално, че не работи, просто ще си изпиша цялата команда. И все пак ми стана интересно това, защо е така. Някой да има някаква идея?


п.п. На shell scripting съм на ниво детската ясла и много неща не са ми ясни;

п.п.п. За да не съм голословен, нека си създадем примерче:

Код
GeSHi (Bash):
  1. #! /bin/bash
  2. alias lh="ls -lrth"
  3. lh
  4.  


Титла: Re: Псевдоними в изпълним низ?
Публикувано от: neter в Nov 17, 2015, 12:17
Първо, когато изпълняваш скрипт, за него се създава нов неинтерактивен шел, а по подразбиране alias-ите не играят в неинтерактивни шелове. За да им позволиш да играят, добави си следния ред в началото на скрипта (след указателя за шела):
Код:
shopt -s expand_aliases
След което под него можеш или ръчно да си задаваш твои alias-и, или да си вмъкнеш файл с alias-и (като ~/.bashrc) със source.

Второ, имай предвид, че alias командите влизат в сила след задаване на exit кода им, т.е., след пълното им изпълнение, което значи, че не трябва да слагаш други команди на същия ред, отделени от alias командата с ";" или "&&", които разчитат alias-ът да действа при тяхното изпълнение. В твоя пример си ги вписал добре, но не би имал успех ако напишеш някое от тези:
Код:
alias lh="ls -lrth"; lh
alias lh="ls -lrth" && lh

Трето, не виждам каква ти е ползата да си играеш с ръчно въведени alias-и в скрипт, вместо да си ги задаваш с променливи. Например:
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. lh="ls -lrth"
  3. $lh


Титла: Re: Псевдоними в изпълним низ?
Публикувано от: go_fire в Nov 17, 2015, 13:38
Направо ме разби. Остави ме безмълвен. Отивам  да си тегля куршума, колко съм прост ☹


Титла: Re: Псевдоними в изпълним низ?
Публикувано от: getqwerty11 в Nov 17, 2015, 14:15
Направо ме разби. Остави ме безмълвен. Отивам  да си тегля куршума, колко съм прост ☹

Бре, по-полека де, някой ще се подхлъзне. Много си интересен.