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

Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

2watashiwa_daredeska: Вау! Огромное спасибо, я сам не допер.

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