[решено] как разделить командную строку по параметрам (окружить каждый кавычками или еще как)

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

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

iltmpz
Сообщения: 34
ОС: Mandriva 2010

[решено] как разделить командную строку по параметрам

Сообщение iltmpz »

Пишу скрипт - на входе переменное число параметров с пробелами, он должен передать эти параметры вызываемой программе.
Как это сделать?
Т.е скрипт примерно такой:

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

#!/bin/sh
.....
/bin/my_program $*

Проблема в том, что, если я запущу скрипт с 2 параметрами:
script.sh "param 1" "param 2"
то my_program получит 4 параметра:
/bin/my_program param 1 param 2
Что можно придумать?
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: [решено] как разделить командную строку по параметрам

Сообщение deadhead »

[x] close
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [решено] как разделить командную строку по параметрам

Сообщение watashiwa_daredeska »

/bin/my_program "$@"
Спасибо сказали:
iltmpz
Сообщения: 34
ОС: Mandriva 2010

Re: [решено] как разделить командную строку по параметрам

Сообщение iltmpz »


По-моему не совсем то, мне не надо ключи из командной строки вытаскивать,
Смысл задачи такой:
скрипту передается список файлов (которые содержат пробелы в именах), он этот список должен передать дальше, при этом каждое имя файла отдельным параметром. А $* - выдает кашу из кусочков параметров, разделенных пробелами.
Если бы число параметров было фиксированное, я бы мог окружить каджый параметр кавычками: my_program "$1" "$2" "$3" ...
watashiwa_daredeska писал(а):
25.11.2010 19:23
/bin/my_program "$@"

А вот это кажется то что нужно, спасибо
Спасибо сказали: