Skocz do zawartości

Troche o bashu


insane

Rekomendowane odpowiedzi

A wiec tak : Chce napisac( czyt. musze ) napisac program ktory rozsyla maile podane w argumentach ale kiedy natrafi na -h albo -v gdziekolwiek to konczy dzialanie i wyswietla odpowiednio opis co robi program i wersje programu.

 

napisalem cos takiego:


if [ $# -eq 0 ] 

then 

      2&>1 echo "Invalid amount of parameters" 

fi



if [ $[1-9] = "-v" ]

then 

    echo "version Final 1.2.0"; exit 1

elif [ $[1-9] = "-h" ]

then    

    echo "The parameter -h give the description you are just reading"

    echo "The parameter -v gives you the current version of the program you are using"

    echo "The program accepts as it's parameter files that have a proper format that is:"



 echo "<wskazanie adresata> <zn. nowego wiersza>"

 echo"<temat> <zn. nowego wiersza>"

 echo"<tytuł do powiększenia> <zn. nowego wiersza>"

 echo"<treoeć> "  

 exit 1

fi

 

ogolnie to sprawdza to czy sa jakies parametry jesli nie to powinno to wyswietlic na wyjsciu kontrolnym blad.

 

Potem przeszukuje parametry kolejno w poszukiwaniu -v lub -h.

I tu pierwsze pytanie czy do wlasnych skryptow mozna wysylac tylko do 9 parametrow ? ( niesadze ) ale zmiennych mam tylko $1-$9 przeciez.

 

jak mozna przejrzec podany argument w celu przefiltrowania? To znaczy

 

ktos podaje mi argument kot=Kot i to ma oznaczac ze wszelkie wystapienia kot w podanym dalej pliku maja byc zamienione na Kot.

Ale musze miec mozliwosc przeszukania argumentow w celu poszukiwania znaku "=".

 

Jeszcze mam pytanie : Jak mozna przeszukac dowolna linijke w pliku w celu przejrzenia jej zawartosci i przypisaniu tego do zmiennej ?

Moglbym uzyc polecenia cat i jego rezultat skierowac do zmiennej ?No tak tylok ze w ten sposob nie mam kontroli nad tym ktora linijka jest wyswietlona.

 

A czy moze polecenie sed -e "1,$d" plik to robi ?

 

Kurcze prosze o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Tia problem juz rozwiazalem wiec napisze jakby ktos w przyszlosci potrzebowal...

 

Parametrow w bashu moze byc 99. Do zmiennych mozemy sie odwolac $0-$9 a kazdy nastpeny parametr jest dopstepny albo poprzez ${xx} gdzie xx to cyfra 10-99 albo poprzez polecenie shift.

 

Co d problemu z argumentem kot=Kot to :

 

[[ $3 == *=* ]] ... to testuje czy w zmiennej $3 jest spacja gdzies.

 

dowolna linijkke mozna odczytac za pomoca sed z argumentem "nrp"

gdzie nr to numerek lini. Tego ostatniego nie jestem pewien jeszcze, ale na pewno sed :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...