Forum » Operacijski sistemi » [Naloga][Linux] BASH skripte
[Naloga][Linux] BASH skripte
Nejcos ::
Živjo!
Imam problem. Učim se za kolokvij, pa mi par stvari ni jasnih oz. ne najdem prave razlage, primerov, da bi stvar zaštekal... Kot vidim, ste tuki majstri za linux, zato upam, da si bo kdo vzel minutko ali dve in mi priskočil na pomoč pri mojih zelo osnovnih vprašanjih ;)
Govora je o skriptih. Imam nekaj nalog, a nobenih rešitev, nobenega vnaprej rešenega primera, zato ne vem, kako se lotiti stvari. Tudi v ućbenikih je večinoma teorija, mene pa zanima, kako gre to v praksi. Napisal bom nekaj nalog, pa upam, da mi bo kdo katero rešil in mal obrazložil.
1.Napišite skript za Linuxovo lupino (ime naj bo owner.sh), ki bo nastavil lastnika in skupino, kateri datoteka pripada na isto vrednost. To vrednost in datoteko bo potrebno podati kot parameter. Primer uporabe: owner.sh janezn x.txt naj postavi janezn za lastnika in skupino datoteke x.txt.
2.Napišite skript za Linuxovo lupino (add.sh), ki kot parameter dobi dve števili in izpiše njuno vsoto. Primer uporabe: add.sh 7 9 izpiše 16 na standardni izhod.
3.Napišite skript, ki izpiše število datotek (samo datotek, ne pa tudi imenikov), ki se nahajajo v trenutnem imeniku.
4.Napišite skript, ki preimenuje vse datoteke s končnico .txt, tako da jim pred ime doda tekst text_. Tako npr. datoteka x.txt postane text_x.txt.
No, to je nekaj nalog, s pomočjo katerih želim osvojiti vsaj osnove skriptov. Kajti, knjih res nisem našel, kjer bi bile naloge z rešitvami. Zato res upam, da si bo kdo vzel čas. Hvala!
Imam problem. Učim se za kolokvij, pa mi par stvari ni jasnih oz. ne najdem prave razlage, primerov, da bi stvar zaštekal... Kot vidim, ste tuki majstri za linux, zato upam, da si bo kdo vzel minutko ali dve in mi priskočil na pomoč pri mojih zelo osnovnih vprašanjih ;)
Govora je o skriptih. Imam nekaj nalog, a nobenih rešitev, nobenega vnaprej rešenega primera, zato ne vem, kako se lotiti stvari. Tudi v ućbenikih je večinoma teorija, mene pa zanima, kako gre to v praksi. Napisal bom nekaj nalog, pa upam, da mi bo kdo katero rešil in mal obrazložil.
1.Napišite skript za Linuxovo lupino (ime naj bo owner.sh), ki bo nastavil lastnika in skupino, kateri datoteka pripada na isto vrednost. To vrednost in datoteko bo potrebno podati kot parameter. Primer uporabe: owner.sh janezn x.txt naj postavi janezn za lastnika in skupino datoteke x.txt.
2.Napišite skript za Linuxovo lupino (add.sh), ki kot parameter dobi dve števili in izpiše njuno vsoto. Primer uporabe: add.sh 7 9 izpiše 16 na standardni izhod.
3.Napišite skript, ki izpiše število datotek (samo datotek, ne pa tudi imenikov), ki se nahajajo v trenutnem imeniku.
4.Napišite skript, ki preimenuje vse datoteke s končnico .txt, tako da jim pred ime doda tekst text_. Tako npr. datoteka x.txt postane text_x.txt.
No, to je nekaj nalog, s pomočjo katerih želim osvojiti vsaj osnove skriptov. Kajti, knjih res nisem našel, kjer bi bile naloge z rešitvami. Zato res upam, da si bo kdo vzel čas. Hvala!
- spremenilo: CCfly ()
@LOL ::
lenoba
Ne vem kdo ti bo šel delati ali reševati naloge. Na netu imaš polno bash tutorialov...
In te naloge so tako osnovne da se jih da rešit po kakem 2 dnevnem učenju basha
kva si za en faks da mate bash? upam da ne fri (tukaj smo ga včasih meli) ali feri ker pol folk dobi občutek da so tam res sami noobi če niso sposobni rešiti teh osnovnih nalog
Ne vem kdo ti bo šel delati ali reševati naloge. Na netu imaš polno bash tutorialov...
In te naloge so tako osnovne da se jih da rešit po kakem 2 dnevnem učenju basha
kva si za en faks da mate bash? upam da ne fri (tukaj smo ga včasih meli) ali feri ker pol folk dobi občutek da so tam res sami noobi če niso sposobni rešiti teh osnovnih nalog
Hippy: The Doors?
Geek: The Windows!
Geek: The Windows!
Zgodovina sprememb…
- spremenil: @LOL ()
Nejcos ::
Prosil sem za pomoč, ne pa za tvoje komentarje. Če ti kaj ne ustreza, pač ne beri te teme.
CCfly ::
Vsak od naštetih trivialnih problemov je obrazložen v:
- Bash Programming Intro HOWTO
- Advanced Bash-Scripting Guide.
Veselo branje.
- Bash Programming Intro HOWTO
- Advanced Bash-Scripting Guide.
Veselo branje.
"My goodness, we forgot generics!" -- Danny Kalev
Nejcos ::
Hvala, zdaj mal študiram tutorial. Ma saj res ni težko, ampak mi par stvari ni jasnih. Take malenkosti, ki so pač tudi pomembne. Bom še mal naokol posikal, sicer se oglasim spet tu.
Nejcos ::
Bi bil en tko dobr, pa mi rešil eno izmed nalog, da vsaj vidim, kakšna je struktura. Težave imam predvsem, ker ne vem, kam napisati ime lupine, pa kako s temi parametri. A potem za ime lupine pišem samo #! ime_lupine ali #!/bin/ime_lupine al kako... Lepo prosim, ker izgubljam dragocen čas.
kekz ::
3. naloga
#!/bin/bash
echo "V privzeti mapi je `find . -maxdepth 1 -type f | wc -l` datotek."
#!/bin/bash
echo "V privzeti mapi je `find . -maxdepth 1 -type f | wc -l` datotek."
Nejcos ::
Evo slovenska različica strani, ki jo je že posredoval CCfly, če bo kdo imel podobno problematiko kot jaz;)
http://www.lugos.si/delo/slo/HOWTO-sl/B...
Hvala kekz!!!
http://www.lugos.si/delo/slo/HOWTO-sl/B...
Hvala kekz!!!
Nejcos ::
Tisto k mi je kekz napisal za rešitve, mi zgleda mal komplicirano. Je lahko rešitev npr. 4. naloge tudi:
#!/bin/bash
for x in *.txt
do
if test -f $x
then
mv $x text_$x
fi
done
#!/bin/bash
for x in *.txt
do
if test -f $x
then
mv $x text_$x
fi
done
kekz ::
Aha, tu si vgradil še dodatno kontrolo, da preimenuješ samo dodatne fajle, drugih pa ne. Čeprav ni ravno običajno, da bi npr. direktorij imel ime *.txt. OK, to je v redu. Pri moji bi to dosegel samo še z enim switchem -type, podobno kot pri nalogi 3.
Ima pa tvoja procedura en drug BUG. Če je v mapi preveč *.txt datotek, bo zadeva crknila. To se mi je v praksi že dogajalo. For zanka ni najboljša, če ne veš, koliko elementov bo. Najbrž bo problem tudi, če so v imenih fajlov presledki.
Bolje bi bilo uporabiti while (ali until) zanko, ki jo polniš skozi pipo z ls in to potem nima te slabosti.
Ima pa tvoja procedura en drug BUG. Če je v mapi preveč *.txt datotek, bo zadeva crknila. To se mi je v praksi že dogajalo. For zanka ni najboljša, če ne veš, koliko elementov bo. Najbrž bo problem tudi, če so v imenih fajlov presledki.
Bolje bi bilo uporabiti while (ali until) zanko, ki jo polniš skozi pipo z ls in to potem nima te slabosti.
Zgodovina sprememb…
- spremenilo: kekz ()
BigWhale ::
Prav tako lahko find-u poves, da najde samo datoteke in ne direktorijev...
*sigh*
*sigh*
Zgodovina sprememb…
- vrnilo v prejšnje stanje: STASI ()
BigWhale ::
LOL:
> In te naloge so tako osnovne da se jih da rešit po kakem 2 dnevnem učenju
> basha[0:)]
Dva dni za tole!?
Ce tega ne zgruntas v 2 (dveh) urah, potem je bolje, da si odgriznes desno nogo.
> In te naloge so tako osnovne da se jih da rešit po kakem 2 dnevnem učenju
> basha[0:)]
Dva dni za tole!?
Ce tega ne zgruntas v 2 (dveh) urah, potem je bolje, da si odgriznes desno nogo.
kekz ::
Še različica 3. naloge za tiste, ki jim find ni "všeč":
#!/bin/bash
echo "V privzeti mapi je `ls -la | grep ^- | wc -l` datotek."
Pred leti je mene motilo ravno to, da je mogoče vsako stvar narediti na toliko povsem različnih načinov.
#!/bin/bash
echo "V privzeti mapi je `ls -la | grep ^- | wc -l` datotek."
Pred leti je mene motilo ravno to, da je mogoče vsako stvar narediti na toliko povsem različnih načinov.
STASI ::
Nekaj vaših postov je bilo zbrisanih, zakaj že avtorji vedo!
Od tu naprej se prosim obnašajte ali pa bomo temi dodali ključavnico!
LP
STASI
Od tu naprej se prosim obnašajte ali pa bomo temi dodali ključavnico!
LP
STASI
"WAR IS PEACE, FREEDOM IS SLAVERY, IGNORANCE IS STRENGTH"
abcčdefghijklmnoprsštuvzž
abcčdefghijklmnoprsštuvzž
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [bash] Sortiranje fotografij po datumuOddelek: Programiranje | 1448 (1009) | Mike0 |
» | BASH skripta za ustvarjanje uporabnikovOddelek: Programiranje | 1060 (829) | golobich |
» | Pomoč pri ukazih v linuxuOddelek: Operacijski sistemi | 1480 (1124) | brodul |
» | Ukazno programiranjeOddelek: Programiranje | 1285 (960) | Invictus |
» | Linux skriptOddelek: Programiranje | 2110 (1924) | MRB0rYS |