passando argumentos ao iniciar o shell script

1

Oi eu estou tentando fazer um script de shell para aceitar argumentos na inicialização. O objetivo que eu quero alcançar é chamar um script python que por si só leva argumentos. Se os argumentos estiverem faltando, a instrução padrão fará com que sejam valores padrão predefinidos. Este é o script que estou tentando fazer funcionar:

#!/bin/bash
#Script for calling th e python script sniff.py

while getopts d:D o
do case "$o" in
d)  usb_dev="@OPTARG";;
D)  console_outp="@OPTARG";;
*)  usb_dev=ttyUSB1;
    console_outp=INFO;      
esac
done

sniff=/home/user/Documents/Wireshark/Sensniff/sniff.py

sudo python $sniff -d "$usb_dev" -D "$console_outp"
sleep 5d

Este script, claro, não está funcionando. Você pode por favor me ajudar a fazer esse script funcionar?

    
por Radoslaw Krasimirow 14.09.2015 / 10:39

1 resposta

1

tente

#!/bin/bash
#Script for calling th e python script sniff.py

usb_dev=ttyUSB1
console_outp=INFO

while getopts d:D: o
do case "$o" in
d)  usb_dev="$OPTARG";;
D)  console_outp="$OPTARG";;
esac
done

(same as your script)
  • o valor padrão deve ser inicializado antes.
  • use $OPTARG em vez de @OPTARG
  • A opção
  • é definida como :D:d:
por Archemar 14.09.2015 / 11:10