Bash scripting: if satser

Här diskuteras programmering och utveckling
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Bash scripting: if satser

Inlägg 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... ;)
Home sweet ~/ = http://sandnabba.se
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Bash scripting: if satser

Inlägg 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
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: Bash scripting: if satser

Inlägg av Emil.s »

Ok, tackar!

Du har möjligtvis ingen bra howto om if (och något om loopar... while, for?) på lager? :)
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
Barre
Inlägg: 2298
Blev medlem: 13 dec 2006, 10:23
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: Bash scripting: if satser

Inlägg av Barre »

Emil...

Ta en titt på getopts
man getopts
________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: Bash scripting: if satser

Inlägg 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.
Skriv svar

Återgå till "Programmering och webbdesign"