Pomozte s bash scriptem na rekurzivní procházení adresářů *

Problematika Linuxu a ostatních operačních systémů (mimo Win)

Moderátor: Mods_senior

symetrala
Level 3.5
Level 3.5
Příspěvky: 756
Registrován: srpen 11
Pohlaví: Muž
Stav:
Offline

Pomozte s bash scriptem na rekurzivní procházení adresářů *

Příspěvekod symetrala » 03 led 2012 09:32

Umí někdo napasat skript pro toto v linuxu(v bashi):
Vytvořte skript, který bude rekurzivně procházet adresářovou strukturu a u všech textových souborů, které mohou fungovat jako skripty nastavte příznak pro spouštění.
Naposledy upravil(a) Myloš dne 04 led 2012 00:41, celkem upraveno 1 x.
Důvod: Oprava nadpisu „Linux program???“, který svou nulovou informační hodnotou porušoval pravidla fóra. Nadpis má popisovat podstatu problému, ale „Linux program???“ nepopisuje vůbec nic. Popis problému vytvoříš nejlépe tak, že popíšeš problém.

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Linux program???

Příspěvekod faraon » 03 led 2012 16:52

Jak poznáš že textový soubor může fungovat jako skript? Já tu mám skripty pro bash, perl, python a basic... Které z nich chceš detekovat?

Zkus nejdřít použít man bash, s důrazem na if a for. Také by se mohly hodit třeba grep a chmod.

Předpokládám že máš po ruce běžící Linux, protože bez toho tenhle úkol neuděláš.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

symetrala
Level 3.5
Level 3.5
Příspěvky: 756
Registrován: srpen 11
Pohlaví: Muž
Stav:
Offline

Re: Linux program???

Příspěvekod symetrala » 03 led 2012 17:32

mam bezici linux po ruce, no hodilo by se mi to pomoci grep a chmod :) Dokazes to napsat? Jde o to, ze potrebuju aby se rozeznalo jestli jde o text.soubor nebo sh, a to si myslim , ze by to slo porovnavat podle prvni radku (1- head)...ale nevim, ani jak to zapsat.chci samozrejme bash skript....

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Linux program???

Příspěvekod faraon » 03 led 2012 22:45

Tak už jsi na něco přišel? Ten head mi připadá jako dobrý nápad. Třeba by šlo využít návratovou hodnotu grep, koukni na tohle:

Kód: Vybrat vše

faraon@tuxbox:~$ head -1 deltacad.sh|grep /bin/bash
#! /bin/bash
faraon@tuxbox:~$ echo $?
0
faraon@tuxbox:~$ head -1 deltacad.sh|grep /bin/basic
faraon@tuxbox:~$ echo $?
1

To by se dalo testovat :wink:
A aby se ten řádek co projde zbytečně nevypisoval, můžeš ho přesměrovat
head -1 deltacad.sh|grep /bin/bash>/dev/null

Nejdřív vymysli co s těmi adresáři, jak je rekurzivně projít a prozkoumat soubory v nich...
http://atrey.karlin.mff.cuni.cz/~johank ... _unix.html
http://www.cmsps.cz/~marlib/g7/soubory/14.html
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

symetrala
Level 3.5
Level 3.5
Příspěvky: 756
Registrován: srpen 11
Pohlaví: Muž
Stav:
Offline

Re: Linux program???

Příspěvekod symetrala » 03 led 2012 23:56

v tom je ten problem no :)

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s bash scriptem na rekurzivní procházení adresář

Příspěvekod faraon » 05 led 2012 04:52

Zkus se podívat co dělá find, ten s parametrem -exec může pro nalezené soubory provést libovolný příkaz, nebo sekvenci.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “LiNuX a ostatní alternativní OS”

Kdo je online

Uživatelé prohlížející si toto fórum: Seznam[Bot] a 5 hostů