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?