Strona 1 z 1

Bash array argument z polecenia

: 09 sty 2012, 22:46
autor: zerocool
jeden skrypt zawiera tablicę

Kod: Zaznacz cały

array=(
KEY_1=24
KEY_2=87
KEY_MENU=232
...
)
drugi uruchamiany przez usera z argumentem KEY_X miałby uruchamiać polecenie

Kod: Zaznacz cały

 echo "232" | nc 192.168.x.x 1234
Jak coś takiego osiągnąć w bashu?
tak miałby być uruchamiany

Kod: Zaznacz cały

./test.sh KEY_MENU

Re: Bash array argument z polecenia

: 10 sty 2012, 00:05
autor: beluosus
Łatwiej będzie jak użyjesz hash table:

Kod: Zaznacz cały

typeset -A array

array[KEY_1]=24
array[KEY_2]=87
array[KEY_MENU]=232
A w drugim skrypcie wystarczy:

Kod: Zaznacz cały

#!/bin/bash

. pierwszy.sh

echo ${array[$1]}
Jeśli jednak chcesz taki format tablicy jak masz to trzeba troszkę bardziej pokombinować:

Kod: Zaznacz cały

#!/bin/bash

. pierwszy.sh

for i in ${array[*]}
do
        ret=$(expr "$i" : "${1}=")
        if (( $ret > 0 ))
        then
                code=${i:$(($ret))}
                echo $code
        fi
done

Re: Bash array argument z polecenia

: 10 sty 2012, 00:51
autor: zerocool
Dziękuję !
przeformatowałem tablicę skoro miała tylko 76 wpisów
wszystko działa jak należy