Temat: pomoc w znalezieniu błędu w skrypcie

Witam!!

Napisałem mały skrypt do przypisania dodatkowej lokalizacji w PATH o takiej treści
#!/bin/sh
if [ -d /home/marcin/Skrypty ] ;
then
        `export PATH=$PATH:/home/marcin/Skrypty/Bash` && `echo $PATH`
else
        echo 'blad'
fi
wykonuje się `echo $PATH` natomiast nie dodaje się dodatkowa lokalizacja poprzez wykoanie takiego polecenia `export PATH=$PATH:/home/marcin/Skrypty/Bash`

2

Odp: pomoc w znalezieniu błędu w skrypcie

Usuń ten odwrotny apostrof (`...`) w poleceniach.
I doczytaj sobie do czego to służy: http://dief.republika.pl/cytat.html

3

Odp: pomoc w znalezieniu błędu w skrypcie

A druga kwestia to uruchomienie tego skryptu. NIE poprzez

# ./skrypt.sh

tylko tak:

# . ./skrypt.sh

dla przypadku gdy znajdujemy się w tym samym katalogu co w/w skrypt.sh

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

4

Odp: pomoc w znalezieniu błędu w skrypcie

Nie kombinuj. Zwykłe ./skrypt.sh wystarczy w tym katalogu, nie includujesz pliku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez mar_w 2016-09-15 16:32:22)

Odp: pomoc w znalezieniu błędu w skrypcie

@Cezary
Niestety nie mogę się zgodzić z tym co napisałeś do mnie.
Skrypt (bez apostrofów) w tej postaci co przedstawił @modelos  nie działa, jeżeli uruchomimy go tak jak napisałeś, ponieważ działa tylko dla "sesji skryptu", w "sesji rodzica" zmienna nie jest ustawiana.
można np. pod Gargoyle wydać jeszcze inne polecenie:

# source skrypt.sh

ale to jest to samo co

# . ./skrypt.sh

Chyba że całkowicie zmienisz skrypt, ale to już inna inszość...

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

6

Odp: pomoc w znalezieniu błędu w skrypcie

Ja pisałem ogóle o uruchomieniu skryptu a nie tego w/w.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: pomoc w znalezieniu błędu w skrypcie

No właśnie nie działa nawet jak usunąłem apostorfy. Jak ręcznie wykonam tą funkcję to działa ale do momentu jak nie wyłączę terminal. Jak zamknę to dołożona ścieżka znika z PATH. Tylko nie wiem dlaczego???:(

8

Odp: pomoc w znalezieniu błędu w skrypcie

Oczywiście, bo jest dla sesji użytkownika. Do /etc/profile sobie dodaj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: pomoc w znalezieniu błędu w skrypcie

nie rozumiem dlaczego tak to działa i musi być w tym katalogu żeby dzxiałało

10

Odp: pomoc w znalezieniu błędu w skrypcie

Bo tak działa linux? Zamkniesz konsolę to rozłączana jest bieżąca sesja. Nie zostaje nic po niej.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: pomoc w znalezieniu błędu w skrypcie

a ok nawet jak wrzucasz skrypt do /etc/rc.local???

12

Odp: pomoc w znalezieniu błędu w skrypcie

Do /etc/profile dodaj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: pomoc w znalezieniu błędu w skrypcie

tak zrobiłem i faktycznie działa tylko się dopytuje dlaczego tak jak ty napisałeś jest OK a nie w tym miejscu co ja napisałem

14

Odp: pomoc w znalezieniu błędu w skrypcie

Bo /etc/rc.local to zwykły skrypt który wykonywany jest przy starcie systemu. Natomiast /etc/profile ustawia zmienne dla sesji użytkowników. Polecam np. http://www.tldp.org/LDP/solrhe/Securing … sec64.html

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.