PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellscript mit if-Anweisung


nalye
2009-08-03, 11:36:53
Ich habe folgendes Script:


#!/bin/sh
if [ $1="" ]
then
echo Paramter fehlen!
fi
for i in $* ; do mv -i $i `echo $i | tr [A-ZÄÖÜ] [a-zäöü]` ; done


Wenn ich keinen Parameter übergebe (z.Bsp. "*.iso"), dann meckert er wie gefordert von wegen "Parameter fehlen!". Wenn ich allerdings einen Parameter angebe (Aufruf mit sh testscript.sh *.iso), dann meckert er, führt es aber aus. Was läuft da quer?

Gast
2009-08-03, 11:40:00
Da fehlt ja auch ein "exit 1" oder ähnliches.
Du könntest außerdem auch if [ -n "$1" ] verwenden, aber ist wohl geschmackssache.

nalye
2009-08-03, 11:46:25
Okay, Cheffe hat mal rübergeschaut ;)


#!/bin/sh
if [ "$1" = "" ]
then
echo Paramter fehlen!
exit 1
fi
for i in $*; do
j=`echo $i | tr "[A-ZÄÖÜ]" "[a-zäöü]"`
# Wenn der Exit-Status 0 ist, dann mache weiter
[ "$i" != "$j" ] && mv -iv "$i" "$j"
done