Nowe posty

Autor Wątek: Znak zachęty  (Przeczytany 4071 razy)

Einst3in

  • Gość
Znak zachęty
« dnia: 2010-10-25, 12:43:58 »
Witam,
       Jestem początkującym użytkownikiem Linuxa.
Mam takie pytanie: Dlaczego jak w terminalu napisze np. PS1="Czekam" to znak zachęty zostanie zmieniony, natomiast jak napisze skrypt np.
#!/bin/bash
echo "Podaj wartosc:"
read WAR
echo "Wybrales:" "$WAR"
PS1="$WAR"
echo "Pomyslna zmiana"

i go pomyślnie wykonam to ten znak nie ulega zmianie, co muszę poprawić?

arctgx

  • Gość
Znak zachęty
« Odpowiedź #1 dnia: 2010-10-25, 12:57:12 »
Jeśli odpalasz skrypt x.sh bezpośrednio lub za pomocą sh x.sh, to powłoka, z której go odpalasz, tworzy dla niego podpowłokę. To w niej ustawiana jest zmienna PS1.

Jeśli chcesz skrypt x.sh wykonać w bieżącej powłoce, wywołujesz go tak:
. x.sh
(zamiast kropki na początku możesz dać słowo source, ale ono może nie działać w innych niż bash powłokach).

Einst3in

  • Gość
Znak zachęty
« Odpowiedź #2 dnia: 2010-10-25, 13:02:19 »
Tak, teraz działa. Dzięki wielkie.

Czyli "." powoduje po prostu wykonanie danego skryptu w powłoce macierzystej, o to chodzi ?

arctgx

  • Gość
Znak zachęty
« Odpowiedź #3 dnia: 2010-10-25, 13:27:55 »
man -P 'less -p ^\\ +source' bash
przynajmniej, jeśli polski manual masz zainstalowany. W angielskiej wersji możesz potrzebować co najmniej raz wcisnąć n, by skoczyć do definicji tego wbudowanego polecenia (dokładniej, do kolejnego wystąpienia słowa "source" oddzielonego spacjami od początku linii).

Einst3in

  • Gość
Znak zachęty
« Odpowiedź #4 dnia: 2010-10-25, 20:55:11 »
Ok. Dzięki Wielkie :D