Sziasztok,
Egy feladat megoldássában kérném a segítségeteket. Szeretnék egy szkriptet írni, melyhez szükségem lenne arra, hogy adott könyvtár alatt elhelyezkedő alkönyvtárak neveit beolvassam egy tömbbe. Hogyan tudnám ezt megtenni?
Előre is köszi a segítséget! :)
- 1273 megtekintés
Hozzászólások
Milyen nyelven szeretned mindezt?
------------------
http://www.youtube.com/watch?v=Sf8cM7f6P2I
- A hozzászóláshoz be kell jelentkezni
Opppsz ... sima bash script. Bocs ez lemaradt. :)
--
"A méz már nem ízlik annyira, ha ettünk belőle. A cél nem jelent már annyit, ha elértük. A jutalom már nem olyan értékes, ha megkaptuk."
- A hozzászóláshoz be kell jelentkezni
Bash?
akkor pl így:
# kell egy valtozo a tomb indexe miatt
a=0
cd valami #a konyvtar amiben dolgozunk
for subdir in *
do
#ellenorizzuk, h konyvtar-e
if [ -d $subdir ]
then
#ha konyvtar, be a tombbe
array[$a]=$subdir
#noveljuk a tomb index valtozojat
a=`expr $a + 1`
fi
done
echo ${array[*]}
hacsak el nem rontottam valamit :)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítséget működik!
Két kérdésem azért lenne:
1. Mire jó a '-d' kapcsoló?
2. Mire jó az 'expr' kifejezés és miért nem jó egyszerűen az a=$a+1?
Még csak tanulgatom a nyelvet. :)
--
"A méz már nem ízlik annyira, ha ettünk belőle. A cél nem jelent már annyit, ha elértük. A jutalom már nem olyan értékes, ha megkaptuk."
- A hozzászóláshoz be kell jelentkezni
1., man test
egyébként azt jelenti, hogy a fájl típusa könyvtár-e
elég furcsán hangzik, de valahogy így fogalmaz a man oldal emlékeim szerint
2., ha müködik amit írtál, használhatod azt is. Amelyik szimpatikus. Én már megszoktam az expr használatát, bár jó lenne valami egyszerübb helyette...
szerkesztve:
az a=$a+1 azért nem jó, mert a bash alapban, hacsak nem szám az érték, akkor szövegnek veszi. Azaz mivel ott a '+1' a végén, ez szöveg lesz. (ha valaki jobban tudja javítson ki nyugodtan)
Próbáld csak ki: a=0; a=$a+1; echo $a
- A hozzászóláshoz be kell jelentkezni
expr helyett tudom ajánlani:
let a+=1
vagy
a=$(($a+1))
vagy
a=$[$a+1]
- A hozzászóláshoz be kell jelentkezni
Kössz, az elsö nagyon szimpatikus :)
- A hozzászóláshoz be kell jelentkezni
Most néztem meg a man bash-t, és a let résznél említi ezt:
((a++))
szóval így is megy
- A hozzászóláshoz be kell jelentkezni
akkor a
let a++
is megy :)
- A hozzászóláshoz be kell jelentkezni
..és tényleg
ma is tanultam valamit :)
- A hozzászóláshoz be kell jelentkezni
Pl így:
DIRECTORY=$PWD
declare -a array=($(find $DIRECTORY -mindepth 1 -maxdepth 1 -type d))
echo ${array[*]}
Find-ot paraméterezgetve lehet továbbfejeszteni. (Például ha kell az alkönytárak alkönytárainak a neve is)
- A hozzászóláshoz be kell jelentkezni