darcnet
28-07-2007, 18:38
Witam.
Problem, na jaki natknąłem się dzisiaj i jakiego nie jestem w stanie rozwiązać w żaden sposób (gdyż moja wiedza o pisaniu skryptów powłoki jest jeszcze zbyt mała), to przypisywanie argumentów skryptowi. chodzi o to, że mogę każdy argument przypisać kolejnej zmiennej, lecz takie twarde ustawianie argumentów nie będzie działać dobrze, bo starczy, że ktoś trochę pomiesza ich kolejność i program się wykolei. poza tym chciałbym, żeby user mógł nie ustalać zmiennych, których nie chce i pozostawić je domyślnymi
pomysł, na jaki wpadłem, to coś takiego:
if [ "$1" = "-h" ]; then
echo -e "Opcje:\n -h \t\t\twyswietla to menu\n -d "nazwakatalogu" \tustala katalog docelowy (domyslnie $HOME/3gp).\n -tmpd "nazwakatalogu" \tustala katalog roboczy (domyslnie $HOME/3gp/tmp.\n"
elif [ "$1" = "-d" ]; then
$nazwa_katalogu = $2
elif [ "$1" = "-tmpd" ]; then
$katalog_roboczy = $2
fi
działać będzie, ale jest nieefektywne...
kolejny problem, to to, że zmienna nie może przypisać swojej wartości zmiennej innej zmiennej, tak, jak ja chciałem to zrobić.
wyskoczy błąd "=: command not found"
Problem, na jaki natknąłem się dzisiaj i jakiego nie jestem w stanie rozwiązać w żaden sposób (gdyż moja wiedza o pisaniu skryptów powłoki jest jeszcze zbyt mała), to przypisywanie argumentów skryptowi. chodzi o to, że mogę każdy argument przypisać kolejnej zmiennej, lecz takie twarde ustawianie argumentów nie będzie działać dobrze, bo starczy, że ktoś trochę pomiesza ich kolejność i program się wykolei. poza tym chciałbym, żeby user mógł nie ustalać zmiennych, których nie chce i pozostawić je domyślnymi
pomysł, na jaki wpadłem, to coś takiego:
if [ "$1" = "-h" ]; then
echo -e "Opcje:\n -h \t\t\twyswietla to menu\n -d "nazwakatalogu" \tustala katalog docelowy (domyslnie $HOME/3gp).\n -tmpd "nazwakatalogu" \tustala katalog roboczy (domyslnie $HOME/3gp/tmp.\n"
elif [ "$1" = "-d" ]; then
$nazwa_katalogu = $2
elif [ "$1" = "-tmpd" ]; then
$katalog_roboczy = $2
fi
działać będzie, ale jest nieefektywne...
kolejny problem, to to, że zmienna nie może przypisać swojej wartości zmiennej innej zmiennej, tak, jak ja chciałem to zrobić.
wyskoczy błąd "=: command not found"