Valaki segít két shellscriptes feladatban?
1. Készíts prod.sh nevű scriptet, mely két paramétert vár (ahol az első (a) nem nagyobb mint a második(b)), majd az a..b Zárt intervallumon lévő egész számok maximumát kiírja.
2.Készíts scriptet koltseg.sh néven. A program paraméterül kap egy fájlnevet (ellenőrizd létezik-e). A file egy bevásárló lista, melynek minden sorában tételek neve, darabszáma és ára van vesszővel elválasztva. Összegezd script segítségével az árakat.
Még elég kezdő vagy shellscript irásban, de kaptam házifeladatot, megköszönném annak aki egy kis magyarázatot is fűzne hozzá.
Parancssori paramétert. Amit a szkript indításakor adsz meg:
$ szkript.sh param1 param2 param3 ...
"bash command line arguments" a releváns keresőkifejezés, már ha bash-t használtok (ha nem akkor értelemszerűen cseréld). Sok példát lehet találni.
A lényeg:
A paraméterek száma ez: $@
Az első paraméter ez: $1
A második paraméter ez: $2
Innentől kezdve ha ismered a nyelvet és a szükséges parancsokat, akkor összerakható a feladat.
Olvasd át a jegyzetet, minden benne van, ami kell hozzá:
Az első feladatra összetákoltam valamit:
(csak gyorsan rákeresve a bash shell script-elésre, mivel semmi tapasztalatom nincs benne)
#!/bin/sh
# ha az argumentumok száma nem kettő akkor kilép
if [ $# -lt 2 ]
then
echo Kell az intervallum eleje és vége
exit 1
fi
#paraméterek átadása számolásokhoz
a=$1
b=$2
#argumentumok törtrészének levágása
a=${a%.*}
b=${b%.*}
#nagyobbik keresése és a kisebbik növelése
if [ $a -gt $b ]
then
nagyobb=$a
kisebb=$(( b+1 ))
else
nagyobb=$b
kisebb=$(( a+1 ))
fi
#ha a kisebbik a növelés után nagyobb lett és nem egész volt, akkor nincs egész az intervallumban
if [ $kisebb -gt $nagyobb ]
then
kisebb=$(( kisebb-1 ))
if [ "$1" == "$kisebb" ]
then
echo "Megoldás: $kisebb"
else
echo "Nincs egész az intervallumban"
fi
else
echo "Megoldás: $nagyobb"
fi
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!