Portál AbcLinuxu, 5. května 2025 23:16
Iba cisto bash, kedze toto pohodlne zvladne.
#! /bin/bash # zadefinuj cestu k suboru file= while read line do path="${line%/*}" [ -n "$path" ] && echo "$path" || echo '/' done < "$file"
Mozno by bolo vhodne sem dat cely Vas skript, teda pokial to nie je tajne nieco. :) Lahsie by sa nasla chyba, pretoze ta hlaska je jednoducho dost vystizna. Ako pomocku si mozte dat tesne pred cd ./adresar3 echo $PWD a zistite, ci sa skutocne nachadzate, kde by ste sa nachadzat chceli a to nejak takto:
echo "Umiestnenie : $PWD" # malo by vratit /home/adresar1/adresar2 , podla zadania
cd ./adresar3
Sed je sice velmi sikovny nastroj, ale vsetko nelieci ani on. Je sed podmienkou vo Vasom skripte ?
adresar3
v aktuálním adresáři neexistuje (case-sensitive ?), a jinak provedení cd
je třeba otestovat.
class="brush: bash" cd "$dir" for tdir in $(find . -type d); do echo "tdir je $tdir" echo "Umisteni: $PWD" cd "$tdir" echo "Umisteni po zmene: $PWD"
#!/bin/bash startPath='/tests/petra/test' cd "$startPath" if [ "$?" -ne "0" ]; then echo "Startovaci adresar neexistuje" exit 3 fi for tdir in $(find . -mindepth 1 -type d); do echo "----------" echo ""tdir je $tdir" echo "Umisteni: $PWD" cd "$tdir" echo "Umisteni po zmene: $PWD" cd "$startPath" echo "----------" doneNevím jestli to byl záměr, ale
find
Vám vracel i '.'find
takto hledá recursivně, ne jen v tom adrsáři…cd
nezklame…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.