Zwrot wartości z funkcji

0

Witajcie!

Mam bardzo, bardzo dziwny problem. Chciałbym żeby funkcja zwróciła wartość. Ale tak jak robi się to w innych językach zwyczajnie nie działa (pewnie coś robię źle) :). Kod:

 find_file()
{ 
        echo -e "Number of arguments: $#\n";
	if [ "$#" -eq 1 ]; then
		echo "hahah $1";
		if [ -e "$1" ]; then # -e test checks if file exists
			return 1;
		else
			return 0;
		fi
	else
		path=`pwd`;
		cd $HOME;
		echo "Give name of file in CURRENT directory i.e.";pwd;
		read file_name;	
		if [ -e "$file_name" ]; then
			echo "TRUE";
			cd $path;
			return 1;
		else
			echo "FALSE";
			cd $path;
			return 0;
		fi
	fi
}

#wywołanie:
$name="dziwny_plik.txt";
zmienna=find_file $name;
#probowalem tez tak:
zmienna=find_file "$name";

co ciekawe nie wyswietla mi w ogole pierwszego echa - tak jakby funkcja w ogóle nie była wywoływana!
Natomiast gdy użyję jej w ten sposób:

find_file "dziwny_plik.txt"

Otrzymuję poprawne wyniki. Zna ktoś powód takiego zamieszania?

0
name="dziwny_plik.txt";
zmienna=`find_file "$name"`;
echo $zmienna

Nie $name, tylko name, a żeby coś wywołać i zapisać do zmiennej musisz ując to w znaki akcentu.

0

Dzięki bardzo!

1 użytkowników online, w tym zalogowanych: 0, gości: 1