Suas declarações if
aninhadas parecem muito boas, seus testes provavelmente indicam que o script "não funciona".
Eu alterei seu comando test
s para o comando bash [[
extended test.
Além disso, em vez de usar dois condicionais if
aninhados, acho que deve funcionar bem como um único if
elif
.
#!/bin/bash
if [[ -z "$1" ]]
then
echo "Wrong usage of command, to check proper wars user -h for help."
exit
else
if [[ "$1" == "-h" ]]
then
echo -e "OPTIONS: -h (help), -a (access point MAC), -c (current target[s] MAC[s])\n"
exit
elif [[ "$1" == "-c" ]]
then
echo "Usage error, access point MAC comes first."
exit
fi
fi
Seus testes devem ter um espaço entre $1
e sua string de teste, mas eu acho que é melhor usar o bash [[
test se você estiver escrevendo seu script no bash. Aqui estão alguns exemplos de como o test
builtin funciona:
$ test true && echo yes || echo no
yes
$ test false && echo yes || echo no
yes
$ test true=false && echo yes || echo no
yes
$ test true = false && echo yes || echo no
no
Além disso, neste exemplo, não acho que sua condição if
aninhada seja obrigatória. Você poderia simplificá-lo para:
#!/bin/bash
if [[ "$1" == "-h" ]]; then
echo -e "OPTIONS: -h (help), -a (access point MAC), -c (current target[s] MAC[s])\n"
exit
elif [[ "$1" == "-c" ]]; then
echo "Usage error, access point MAC comes first."
exit
else
echo "Wrong usage of command, to check proper wars user -h for help."
exit
fi