insane Napisano Kwiecień 18, 2004 Zgłoszenie Share Napisano Kwiecień 18, 2004 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 More sharing options...
insane Napisano Kwiecień 19, 2004 Autor Zgłoszenie Share Napisano Kwiecień 19, 2004 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 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
gajownik Napisano Kwiecień 22, 2004 Zgłoszenie Share Napisano Kwiecień 22, 2004 Być może przyda Ci się jeszcze polecenie wc -l, by sprawdzić, czy podawany w argumencie skryptu plik ma odpowiednią ilość wierszy. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
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ę