Реализация параметров в shell-скриптах

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
Babusha
Сообщения: 203
ОС: Убунту

Реализация параметров в shell-скриптах

Сообщение Babusha »

Скажите, а как реализуется в шелл скриптах параметры, типа $ ./script --parametr
Или аналогично $ ./script -p
И как вообще сделать вот так:
К примеру есть архив tar.gz
И если при вызове скрипта нужно сделать вот так
$ ./script archive.tar.gz
Что бы то что было прописано после ./script выполнялось с
tar xvjf
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Реализация параметров в shell-скриптах

Сообщение deadhead »

[x] close
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Реализация параметров в shell-скриптах

Сообщение diesel »

Babusha писал(а):
02.07.2010 17:13
$ ./script archive.tar.gz
Что бы то что было прописано после ./script выполнялось с
tar xvjf

ну именно вот в такой формулировке:

Код: Выделить всё

#!/bin/sh
tar xvjf  "$1"


или как-то в духе:

Код: Выделить всё

#!/bin/bash
export IFS="
";
for i in ${BASH_ARGV[@]}; do
    tar xvjf  "$i";
done

это если по всем переданным параметрам.
Спасибо сказали:
Аватара пользователя
Babusha
Сообщения: 203
ОС: Убунту

Re: Реализация параметров в shell-скриптах

Сообщение Babusha »

Спасибо большое!
Сейчас буду сидеть изучать getopt
А с $1 вообще спасение, спасибо еще раз вам!
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Реализация параметров в shell-скриптах

Сообщение t.t »

diesel писал(а):
02.07.2010 17:17
или как-то в духе:

Код: Выделить всё

#!/bin/bash
export IFS="
";
for i in ${BASH_ARGV[@]}; do
    tar xvjf  "$i";
done

это если по всем переданным параметрам.
Зачем такие сложности?

Код: Выделить всё

for i in "$@"; do
  tar xjvf "$i"
done
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Babusha
Сообщения: 203
ОС: Убунту

Re: Реализация параметров в shell-скриптах

Сообщение Babusha »

А где можно почитать про getopt на русском, где описано все очень хорошо? В гугле нету.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Реализация параметров в shell-скриптах

Сообщение diesel »

Babusha писал(а):
02.07.2010 17:53
А где можно почитать про getopt на русском, где описано все очень хорошо? В гугле нету.

http://www.opennet.ru/docs/RUS/bash_script...c5358.html#EX33

вот тут пример
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Реализация параметров в shell-скриптах

Сообщение deadhead »

Babusha писал(а):
02.07.2010 17:53
А где можно почитать про getopt на русском, где описано все очень хорошо? В гугле нету.

Да?
LXF112:Getopt
getopts — параметры переменная
[x] close
Спасибо сказали:
Аватара пользователя
Babusha
Сообщения: 203
ОС: Убунту

Re: Реализация параметров в shell-скриптах

Сообщение Babusha »

Да?

Дибильный украинский гугл. Не всегда замечаешь что ты на украинском гугле а не на русском Р_Р
Спасибо сказали:
Аватара пользователя
Иван Шихалев
Сообщения: 167
Статус: принципиальный дилетант
ОС: Gentoo Linux

Re: Реализация параметров в shell-скриптах

Сообщение Иван Шихалев »

t.t писал(а):
02.07.2010 17:44
Зачем такие сложности?

Код: Выделить всё

for i in "$@"; do
  tar xjvf "$i"
done

Зачем такие сложности?

Код: Выделить всё

tar xjvf "$@"


upd: Сорри, не совсем прав. Впрочем, возможно, это и ближе к исхоному вопросу, чем вызов для каждого...
Иван Шихалев
shikhalev.org
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Реализация параметров в shell-скриптах

Сообщение t.t »

Иван Шихалев писал(а):
18.07.2010 05:52
t.t писал(а):
02.07.2010 17:44
Зачем такие сложности?

Код: Выделить всё

for i in "$@"; do
  tar xjvf "$i"
done
Зачем такие сложности?

Код: Выделить всё

tar xjvf "$@"


upd: Сорри, не совсем прав. Впрочем, возможно, это и ближе к исхоному вопросу, чем вызов для каждого...
Ничуть не ближе: tar принимает ровно одно имя архива на опцию опцию f, а самих этих опций может быть несколько только в случае многотомныйх архивов. Так что ничего иного, чем вызов для каждого архива, здесь быть не может.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Иван Шихалев
Сообщения: 167
Статус: принципиальный дилетант
ОС: Gentoo Linux

Re: Реализация параметров в shell-скриптах

Сообщение Иван Шихалев »

t.t писал(а):
18.07.2010 11:48
Ничуть не ближе: tar принимает ровно одно имя архива на опцию опцию f, а самих этих опций может быть несколько только в случае многотомныйх архивов. Так что ничего иного, чем вызов для каждого архива, здесь быть не может.

В конкретном случае — да. Но формулировка была:
Что бы то что было прописано после ./script выполнялось с

Что можно понять и иначе, что я поначалу и сделал, потом лишь обратив внимание, что это именно tar.
Иван Шихалев
shikhalev.org
Спасибо сказали: