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

Odpovědět
symetrala
Level 3.5
Level 3.5
Příspěvky: 756
Registrován: 21 srp 2011 23:27

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

Příspěvek od symetrala »

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.
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7408
Registrován: 23 pro 2010 09:23

Re: Linux program???

Příspěvek od faraon »

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: 21 srp 2011 23:27

Re: Linux program???

Příspěvek od symetrala »

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: 7408
Registrován: 23 pro 2010 09:23

Re: Linux program???

Příspěvek od faraon »

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: 21 srp 2011 23:27

Re: Linux program???

Příspěvek od symetrala »

v tom je ten problem no :)
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7408
Registrován: 23 pro 2010 09:23

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

Příspěvek od faraon »

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)
Odpovědět

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