bash przekazywanie parametrów do skryptu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
alhaim
Piegowaty Guziec
Piegowaty Guziec
Posty: 13
Rejestracja: 20 paź 2007, 13:55
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

bash przekazywanie parametrów do skryptu

Post autor: alhaim »

Witam,
Potrzebuje napisać skrypt do którego będzie można przekazywać pewne parametry, określając jaki to parametr w formacie -[litera]. Wszystko ma wyglądać mniej więcej tak

./skrypt -d costam1 -e costam2 itd.

co powinienem zrobić by zdefiniować sobie parametry -e -d itd? jak je przekazać do skryptu?

Dzięki za wszlką pomoc
Awatar użytkownika
Struchu
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 116
Rejestracja: 23 mar 2008, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: bash przekazywanie parametrów do skryptu

Post autor: Struchu »

Parametry wywołania skryptu bashowego przetrzymywane są w zmiennych $1, $2 itd. Sprawdzenia, jaki parametr został podany można dokonać np. poprzez porównanie:

Kod: Zaznacz cały

if "$1" = "-d"
then
#jakieś instrukcje
fi
Ma zielone, kocie oczy...
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: bash przekazywanie parametrów do skryptu

Post autor: el.pescado »

Pomocny może być też program getopt:

Kod: Zaznacz cały

man 1 getopt
xlight
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 29 paź 2008, 10:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: bash przekazywanie parametrów do skryptu

Post autor: xlight »

Witam
Mam pytanie czy jest możliwość wyświetlenia wszystkich parametrów z jakimi zostal uruchomiony program? Chiałbym zeby parametry mozna bylo wyswietlic w pętli, a nie podając konkretny argument $1, $2, $3, ...
Rgl
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 226
Rejestracja: 08 sty 2006, 08:10
Płeć: Mężczyzna
Wersja Ubuntu: 24.10
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Warszawa

Odp: bash przekazywanie parametrów do skryptu

Post autor: Rgl »

Jeśli chodzi tylko o wyświetlenie wszystkich parametrów to wystarczy:

Kod: Zaznacz cały

echo $@
xlight
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 29 paź 2008, 10:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: bash przekazywanie parametrów do skryptu

Post autor: xlight »

Potrzebuje skorzystac z tych parametrów, dlatego samo $@ nie wystarczy.
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: bash przekazywanie parametrów do skryptu

Post autor: dawidgarus »

polecam instrukcje case:

Kod: Zaznacz cały

while test -n "$1"; do
 case "$1" in
  "-d")
   d="$2"
   shift
   shift
   ;;
  "-e")
   e="$2"
   shift
   shift
   ;;
 esac
done
Rgl
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 226
Rejestracja: 08 sty 2006, 08:10
Płeć: Mężczyzna
Wersja Ubuntu: 24.10
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Warszawa

Odp: bash przekazywanie parametrów do skryptu

Post autor: Rgl »

xlight pisze:Potrzebuje skorzystac z tych parametrów, dlatego samo $@ nie wystarczy.
Wystarczy bo można wykorzystać jako listę do pętli for

Kod: Zaznacz cały

for x in $@
do
echo $x 
#wewnątrz pętli $x jest wartością parametru 
done
xlight
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 29 paź 2008, 10:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: bash przekazywanie parametrów do skryptu

Post autor: xlight »

Dzięki Rgl, właśnie o to mi chodziło.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości