bash skrypt

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

sayetan
Moderator w st. spocz.
Posty: 2193
Rejestracja: 2004-06-20, 21:47
Lokalizacja: Jelenia Góra

Re: bash skrypt

Post autor: sayetan »

jeeeeeeeeeeeeeeeeeeeeeeeest :D :D :D
nie dzialalo tak jak mowiles, brakowalo jednego znaczka :D oto rozwiazanie:

Kod: Zaznacz cały

#!/bin/bash

PARAMTER="" 

while [ ! -z "$1" ]; do 
    if  [ ${1:0:8} == "--param=" ]; then PARAMETR=(${1:8}); fi 
    shift 
done 

OPTIONS="" 

IFS=$IFS, ;  for OPT in $PARAMETR; do OPTIONS="$OPTIONS --prefix=$OPT" ; done 

echo "Opcje: $OPTIONS"
w wyniku czego dostaje:

Kod: Zaznacz cały

sayetan@brutus:~/work$ ./test --param=test,drugi_test,/trzeci,/czwarty/test
Opcje:  --prefix=test --prefix=drugi_test --prefix=/trzeci --prefix=/czwarty/test
czyli rozwiazaly sie moje dwa problemy: z podawaniem ilosci parametru i z sama iloscia
moje wczesniejsze rozwiazania wedlug mnie mialy skonczona liczbe, tutaj moge podac ile chce i zawsze wklei

DZIEKI !!!
Awatar użytkownika
haclet
Użytkownik
Posty: 40
Rejestracja: 2004-06-13, 21:34
Lokalizacja: ŁódĽ/Opole
Kontakt:

Re: bash skrypt

Post autor: haclet »

Wiem ze cała rozmowa poświęcona była interpretacji paramterów, aczkolwiek czytając posty pojawiają się problemy związane ze spacjami w nazwach (plików, katalogów) i z przekazaniem odpowiedniej ilości paramterów np do polecnia read.

Na szybko proponuję: man xargs.
Oraz szybko wyjaśniam że read może czytać tyle paramterów, ile zostanie mu określonych:

Kod: Zaznacz cały

read param1 param2 param3
cat $cos | while read t1 t2; do cos tam; done
W pisaniu skryptów pod bashem spokojnie można grupować polecenia aby osiągnąć zamierzony rezultat - przedstawiam link do programu gdzie wyraźnie zostały zastosowane funkcje oraz przekierowywanie potoków do grupy poleceń (są to funkcje: function wygenerujTmpListDirs() i function wygenerujHTMLFile())

Cały skrypt znajduje się pod adresem: http://zak.wshe.lodz.pl/~mapraczko/publ ... ilelist.sh
(!działa na plikach ze spacjami!).

Służę chętnie pomocą z wyjaśnieniem rzeczy które nie są zrozumiałe, lecz wcześniej proszę o sprawdzenie w manualu ;) :)


Uwielbiam wspólne rozwiązywanie problemów, zawsze się czegoś nauczę ;) /nie wiedziałem ze tak mona: PS. ${1:0:8}]; ;-)
Pozdrawiam ;)[/code]
Pozdrawiam ;-]
Nie amator - nie elita... ;-)
ODPOWIEDZ