Portál AbcLinuxu, 2. listopadu 2025 17:51
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.