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