LINUX.ORG.RU

Проверка строк в баше


0

1

Почему не работает проверка и код зацикливается

r () 
{ 
    if [ -f "$1/lock" ]; then
	  echo $1/lock
    fi;
    echo $1
    for d in $(ls $1 -a)
    do
			  if [ $d!='.' ]; then
			  if [ $d!='..' ]; then
				    if [ -d "$d" ]; then
						    echo "<<$d>>"
					  ( r "$d" )
				    fi;
		    fi;
		    fi;
    done
}

r . 


$d!='.'

пробелы вокруг = надо

sdio ★★★★★
()
Ответ на: комментарий от sdio
 r () 
{ 
    if [ -f "lock" ]; then
		  echo `pwd`"/lock"
    fi;
    cd $1
    for d in $(ls -a)
    do	
			  if [ $d != '.' ]; then
			  if [ $d != '..' ]; then
				    if [ -d "$d" ]; then
							  ( r "$d" )
				    fi;
		    fi;
		    fi;
    done
}

r . 

Спасибо, там чо-то сложное, я вот так изменил, оно работает, но для каждого вхождения файла lock 4 раза появляется????

Yola
() автор топика
Ответ на: комментарий от sdio

почему оно в одну папку 4 раза заходит?

Yola
() автор топика
Ответ на: комментарий от Yola

тут был один товарищ изучающий баш, но ты его переплюнул, вообще не напрягаясь, твой скрипт это просто космос
молодец, держи краба

zolden ★★★★★
()

set -x

добавь и дебажь пока не поумнеешь

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.