LINUX.ORG.RU

Передача параметров через скрипт программе...


0

0

Вот такая дурная у меня проблема: нужно сделать скрипт-обертку вокруг
приложения. Хочется, чтобы скрипт принимал параметры для этого
приложения и в неизменном виде передавал ему.
Но.

Я пишу так:

-----------runner.sh-----------
#!/bin/sh
echo "Starting the app [$@]..."
eval $@
echo "The app has exited"
-------------------------------

Вызываю так: ./runner.sh mv -f * /home.foo

Все бы хорошо, но bash раскрывает вайлдкарты, и в mv передается уже не
звездочка, а развернутый список файлов и директорий. В принципе, это
тоже не страшно, до тех пор, пока в этом списке нет имен файлов с
пробелами. Если есть файл с именем "My File", то в runner.sh придет
строка "My File", интерпретируемая как один параметр. Вот, ну а когда
эта строка отправляется собственно запускаемому приложению, то оно
уже принимает два параметра: "My" и "File" и, конечно, работает
неправильно.

Как же решить эту задачу? Я подозреваю, можно что-то замутить с xargs,
но как - плохо понимаю.

Помогите, пожалуйста, кто знает...

anonymous

Re: Передача параметров через скрипт программе...

Убери eval и будет тебе щастье :)

anonymous ()

Re: Re: Передача параметров через скрипт программе...

А без eval не хотят запускаться прилады, которые сами находятся в директории с пробелами. И экранировал их слешами, и использовал eval и все работало. Без eval экранирование не работает.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.