optionen ans script hängen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kurai!
Beiträge: 5
Registriert: 30.01.2007 17:00:15

optionen ans script hängen

Beitrag von kurai! » 30.01.2007 21:53:50

hallo da ich noch keinen wirklich guten sh script guide gefunden habe frag ich einfach mal hier ^^

wie kann eich eine option an das script hängen wie zb:

./script.sh --muh

bsp:

<--teil1-->
echo "nix option";
exit;

<--teil2-->
echo "Muh-Option";
exit;

wenn keine option dran ist soll es teil 1 nehmen wenn option --muh angehänt ist teil 2 wie mach ich das?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 30.01.2007 22:34:28

ein kleines Beispiel mit einer Long-Option "--muh" und einer Short-Option "-v"

Code: Alles auswählen

root@gms1:~# cat x.sh
#!/bin/bash
RES=`getopt -o "v" --long  "muh" -- "$@"`
if [ $? != 0 ] ; then echo "usage error" >&2 ; exit 1 ; fi
eval set -- "$RES"

while true ; do
  case "$1" in
    -v) echo "option v detected" ; shift ;;
    --muh) echo "option muh detected" ; shift ;;
    --) shift ; break ;;
    *) echo "usage error!" >&2; exit 1 ;;
  esac
done
echo "$@"

root@gms1:~# ./x.sh --muh arg1 -v arg2
option muh detected
option v detected
arg1 arg2
Gruß
gms

kurai!
Beiträge: 5
Registriert: 30.01.2007 17:00:15

Beitrag von kurai! » 30.01.2007 23:30:01

wie kann ich da mehrere optionen hinzufügen?

zb mit
RES=`getopt --long "muh" --long "stable-txt" -- $@ `
geht es nicht

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.01.2007 09:13:24

mehrere Long-Options können mit "," getrennt werden und die "-o" Option wird glaube ich benötigt

Code: Alles auswählen

gms@gms4:~$ cat x.sh
#!/bin/bash
RES=`getopt -o "" --long  "muh,grunz" -- "$@"`
if [ $? != 0 ] ; then echo "usage error" >&2 ; exit 1 ; fi
eval set -- "$RES"

while true ; do
  case "$1" in
    --muh) echo "option muh detected" ; shift ;;
    --grunz) echo "option grunz detected" ; shift ;;
    --) shift ; break ;;
    *) echo "usage error!" >&2; exit 1 ;;
  esac
done
echo "$@"

gms@gms4:~$ ./x.sh --muh arg1 --grunz arg2
option muh detected
option grunz detected
arg1 arg2

kurai!
Beiträge: 5
Registriert: 30.01.2007 17:00:15

Beitrag von kurai! » 31.01.2007 14:58:30

danke
nurnoch ein problem


bisher ging immer alles bestens nur plötzlich sagt er mir:

version=$(grep "#define SVNVERSION" ./stable/src/common/svnversion.h | awk '{print $3}')
echo "$version"; shift;;


das problem ist das die datei vorhanden UND lesbar ist

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.01.2007 15:04:06

habe das Problem nicht ganz verstanden:
kurai! hat geschrieben: das problem ist das die datei vorhanden UND lesbar ist
Ist das nicht gut ?

kurai!
Beiträge: 5
Registriert: 30.01.2007 17:00:15

Beitrag von kurai! » 31.01.2007 16:55:44

ok schon gut sorry die devs haben ohne vorwarnung mal eben die file aus der svn genommen...


gibt es ne möglichkeit direkt aus der svn die version zu bekommen?
da es in der software nun keine file mehr dazu gibt

Antworten