if [ -e `ls *txt 2> /dev/null | head -n 1` ] - Kde je chyba?

Jiri Kosina jikos na jikos.cz
Úterý Říjen 25 14:04:23 CEST 2005


On Tue, 25 Oct 2005, Marek Kubesa wrote:

> Poradíte mi, prosím, kde je v této podmínce chyba ?
> #!/bin/sh
> if [ -e `ls *txt 2> /dev/null | head -n 1` ]
> then
>  echo ano
> else
>  echo ne
> fi
> Bohužel za všech okolností je výsledek podmínky true.

Ono se to tak proste chova pro kazdy prikaz spusteny pres zpetne 
apostrofy, zkuste si if [ -e `` ];   

Ja bych to vyresil napriklad takto

#!/bin/sh
A=`ls *txt 2> /dev/null | head -n 1`
if (! [ -z "$A" ] );
then
 echo ano
else
 echo ne
fi


-- 
JiKos.


Další informace o konferenci Linux