Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Prosím o pomoc na jednoduchém bash skriptíku  (Přečteno 2135 krát)

Thomas123

  • Aktivní člen
  • *
  • Příspěvků: 383
Prosím o pomoc na jednoduchém bash skriptíku
« kdy: 11 Prosince 2009, 23:21:42 »
Zdravím,

potřebuji vytvořit jednoduchý bash skriptík, který by měl laicky dělat toto: zadám ./mujskript.sh -t neco -z toto

A v skriptu budu do jednoduchých příkazů doplňovat hodnoty "z" a "t". Snad chápete, co mám na mysli. Jak na to?
Ten Linux není špatná věc, jen se s tím naučit. Windowsák není zvyklý.

premet

  • Host
Re: Prosím o pomoc na jednoduchém bash skriptíku
« Odpověď #1 kdy: 11 Prosince 2009, 23:31:16 »
Např.
http://aplawrence.com/Unix/getopts.html
nebo si vygoogli getopt|getopts  ;)

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Prosím o pomoc na jednoduchém bash skriptíku
« Odpověď #2 kdy: 11 Prosince 2009, 23:50:25 »
potřebuji vytvořit jednoduchý bash skriptík, který by měl laicky dělat toto: zadám ./mujskript.sh -t neco -z toto
?A nestačilo by ti
Kód: [Vybrat]
./mujskript.sh neco toto
echo $1
neco
echo $2
toto
http://www.openstreetmap.org - mapy celého světa "wiki style"

Thomas123

  • Aktivní člen
  • *
  • Příspěvků: 383
Re: Prosím o pomoc na jednoduchém bash skriptíku
« Odpověď #3 kdy: 12 Prosince 2009, 00:11:17 »
No, tak nad tím jsem nepřemýšlel  ;D

Jinak, kdybych měl použít ten první návrh, tak by to vypadalo nějak takto?

Kód: [Vybrat]
#!/bin/bash
args=`getopt t:z: $*`
set -- $args
for i
do
  case "$i" in
        -t) shift;T_PARAMETR=$1";shift;;
        -z) shift;Z_PARAMETR=$1";shift;;
  esac
done

echo T_PARAMETR
echo C_PARAMETR

Chápu to tak, že s tím nahoře u toho getopt, tak dvojtečka má být tam, kde se očekává nějaký vstup a bez dvojtečky v případě, že chci, aby to bylo pouze nastavené? A to shift;; funguje jako ukončení toho přepínače? Dále se chci zeptat, zda $1 značí všechny znaky po první mezeře za přepínačem až k další mezeře?
« Poslední změna: 12 Prosince 2009, 00:17:39 od Thomas123 »
Ten Linux není špatná věc, jen se s tím naučit. Windowsák není zvyklý.

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Prosím o pomoc na jednoduchém bash skriptíku
« Odpověď #4 kdy: 12 Prosince 2009, 00:18:05 »
Dále se chci zeptat, zda $1 značí všechny znaky po první mezeře za přepínačem až k další mezeře?
Ano.
Kód: [Vybrat]
./secti 20 56
echo $(($1+$2))
76
http://www.openstreetmap.org - mapy celého světa "wiki style"

 

Provoz zaštiťuje spolek OpenAlt.