Sida 1 av 1

Bash scripting: if satser

Postat: 03 okt 2007, 10:06
av Emil.s
Hm, hur gör man detta i bash?

if ($1 == "--help" | $1 == "-h")
        echo "mount_encrypted /dev/*disk* *namn*"
else
        cryptsetup luksOpen $1 $2

Typ någon sorts C++ kod ovan... ;)

SV: Bash scripting: if satser

Postat: 03 okt 2007, 11:16
av Lars
Typ så här:

Kod: Markera allt

if [ "$1" = "--help" -o "$1" = "-h" ]; then
        echo "mount_encrypted /dev/*disk* *namn*"
else
        cryptsetup luksOpen $1 $2
fi

SV: Bash scripting: if satser

Postat: 03 okt 2007, 12:08
av Emil.s
Ok, tackar!

Du har möjligtvis ingen bra howto om if (och något om loopar... while, for?) på lager? :)

SV: Bash scripting: if satser

Postat: 03 okt 2007, 12:31
av Barre
Emil...

Ta en titt på getopts
man getopts

SV: Bash scripting: if satser

Postat: 03 okt 2007, 13:34
av Konservburk
Emil.s skrev: Hm, hur gör man detta i bash?

if ($1 == "--help" | $1 == "-h")
        echo "mount_encrypted /dev/*disk* *namn*"
else
        cryptsetup luksOpen $1 $2

Typ någon sorts C++ kod ovan... ;)
Jag skulle ha använt case:

Kod: Markera allt

case $1
in -h | --help)
   echo "mount_encrypted /dev/*disk* *namn*"
;; *)
   cryptsetup luksOpen $1 $2
esac
Men som Barre skrev så är getopts en bra idé,
speciellt om du vill göra något mer komplicerat.