Передача параметров в сценарий

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

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

Grih65kop
Сообщения: 145

Передача параметров в сценарий

Сообщение Grih65kop »

Столкнулся с проблемой передачи параметров от юзера в сценарий. Есть сценарий:

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

if [ $# -ne 1 ]
then
    echo "123"
        exit
fi
for i in ` seq 0 100 `
do
................
................
done


Необходимо что бы юзер мог задавать значения от seq, а именно "0 100".
Пробовал передавать эти значения как "$1", но не получилось.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: Передача параметров в сценарий

Сообщение /dev/random »

Grih65kop писал(а):
16.06.2012 16:59
Пробовал передавать эти значения как "$1", но не получилось.

И что у вас не получилось? Полагаю, вы забыли экранировать пробел при вызове? Есть 2 варианта:
1)
seq $1
# вызов (обратите внимание на кавычки! Без них в $1 попадёт лишь "0", а "100" - в $2):
скрипт "0 100"
2)
seq "$1" "$2"
# не забудьте исправить проверку количества параметров
# вызов:
скрипт 0 100
Спасибо сказали:
Grih65kop
Сообщения: 145

Re: Передача параметров в сценарий

Сообщение Grih65kop »

При

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

if [ $# -ne 1 ]
then
    echo "123"
        exit
fi
for i in `seq "$2" "$3"`
do
................
................
done


bash script.sh моё$1 0 100

Я просто получаю на выходе: 123
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: Передача параметров в сценарий

Сообщение /dev/random »

Здесь:
if [ $# -ne 1 ] ...
вы проверяете, сколько параметров было передано скрипту, и вываливаетесь с сообщением 123, если не один.
Здесь:
for i in `seq "$2" "$3"`
вы пытаетесь использовать _второй_ и _третий_ параметры. Очевидно, что если они есть, то скрипт уже вывалился из-за проверки выше.
Спасибо сказали: