-n och $@ verkar inte lira s bra ihop, nej.... -z gr det dremot, vilket r lite mysko med tanke p att -z r motsatsen till -n (length is zero vs. length is non-zero). Kan man bash bttre n vad jag kan s r det kanske inte s mysko, men i mina gon r det iaf skumt...
Kod:
if [ ! -z "$@" ] # "if not length is zero"
then
VICTIM="$@"
echo "if?"
else
VICTIM="127.0.0.1"
echo "else?"
fi
Scriptet ovan funkar bra med ett argument, If-satsen ovan verkar dock inte tycka om flera argument:
Citat:
# ./test.sh a b
./test.sh: line 3: [: a: binary operator expected
# ./test.sh a b c
./test.sh: line 3: [: too many arguments
$@ r dock en strng innehllandes alla argument. Kr du ./script -help apa 123 s blir $@ == "-help apa 123".
Du kan istllet anvnda $1, $2, $3 etc, som refererar till respektive argument ($1 == "-help", $2 == "apa", $3 == "123")
Kod:
if [ -n "$1" ]
then
VICTIM="$1"
echo "if?"
else
VICTIM="127.0.0.1"
echo "else?"
fi
Lista ver expressions:
http://tldp.org/LDP/Bash-Beginners-G...ect_07_01.html
Fr exempel p lite mer avancerad argument-parsing hittade jag
denna lnk, rtt smidigt.
Edit: ack.. en minut fr sent