bash, передача команды строкой (надо передать "составную" команду строкой)

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

Модератор: /dev/random

Аватара пользователя
sunjob
Сообщения: 269

bash, передача команды строкой

Сообщение sunjob »

добрый день

надо передать "составную" команду строкой
"исходный вариант команды" - закомментирован
с набегу/нагуглю не разобрался

понимаю, что непонимаю глубинных смыслов башизма :o)

буду благодарен за волшебные пендили, подсказки, ссылки, мымсли идеи (желательно, без особых извращений современного баша)

спасибо

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

#!/bin/sh
#///////////////////////////////////////////////////////////////////////////////
cmd()
#///////////////////////////////////////////////////////////////////////////////
{
$CMD
}
#///////////////////////////////////////////////////////////////////////////////

cd $TMP
touch test_image.{iso,img,txt}

#
# исходный вариант
#
#zenity \
#--file-selection --save     \
#--filename=dvd.iso          \
#--file-filter="*.iso *.img" \
#--title="Выбор файла"; exit 1


   X=$'\040'
MASK="*.iso *.img"  ; TITLE="Выбор файла"
MASK="*.iso$X*.img" ; TITLE="Выбор$Xфайла"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=*.iso\ *.img  \
--title=Выбор\ файла        \
"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=*.iso$X*.img  \
--title=Выбор$Xфайла        \
"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=$(echo *.iso$X*.img) \
--title=$(echo Выбор$Xфайла)      \
"

cmd

exit 0
исходные

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

bash-3.1.017-i486-2
slackware 12.2
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19369
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: bash, передача команды строкой

Сообщение Bizdelnick »

Вопрос-то в чём? Чего ожидаете, что получаете?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 269

Re: bash, передача команды строкой

Сообщение sunjob »

да уже подсказали...
Вопрос-то в чём? Чего ожидаете, что получаете?
попробуем еще раз вместе?!
1. надо передать "составную" команду строкой
2. "исходный вариант команды" - закомментирован
из 1 следует: есть "команда", которую надо передать куда-то! куда? по коду - "эта самая команда" передается в функцию cmd(), кот. определена в начале.

уточнение - "передается параметр" косвенно, потому как по другому, судя по всему, никак не получится

из 2 следует: что команда, которая должна быть передана в функцию и отработать там (в функции) - сама по себе отрабатывает нормально, она закомментирована, оставлена для показа того, что нужно передать в функцию

далее в коде есть неск. определений этой самой строки, все они, естественно с ошибками...
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19369
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: bash, передача команды строкой

Сообщение Bizdelnick »

sunjob писал(а):
13.07.2020 17:44
да уже подсказали...
Тогда выложите здесь решение, это будет хорошим тоном.
sunjob писал(а):
13.07.2020 17:44
попробуем еще раз вместе?!
Не надо. Лучше цените время отвечающих и формулируйте вопрос так, чтобы он был понятен сразу после первого прочтения. Я догадываюсь, что где-то там ошибка, но чтобы понять хотя бы приблизительно, в какой строчке, мне надо, во-первых, догадаться, какой результат ожидается от выполнения скрипта, а во-вторых, запустить его самому (к тому же, перед этим установить zenity, а после удалить созданные скриптом файлы). Этого можно было бы избежать, добавив в исходный вопрос пару предложений и вывод скрипта (неплохо бы также через sh -x).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 269

Re: bash, передача команды строкой

Сообщение sunjob »

Лучше цените время отвечающих
реально, очень ценю! поэтому, можно не отвечать! :о)
формулируйте вопрос так, чтобы он был понятен сразу после первого прочтения
кому-то понятно, кому-то нет... я вот прочитал три раза и все понял :о) на лоре так вооще без вопросов - сразу порешили проблему!
всем не угодишь :о) описание расчитано на умненьких-сообразительненьких а... кому не понятно, то и славно, трам пайраммм! :о)

вся суть четко, локонично и коротко заключена в 2х строка
1. надо передать "составную" команду строкой
2. "исходный вариант команды" - закомментирован
п.с. я за адекват :о) в общении, если не понятно, и ни чего не ответили, я только всеми руками-ногами за!

спасибо

p.s.
Тогда выложите здесь решение, это будет хорошим тоном.
хорошим тоном, я считаю - так и делать, выкладывать решения... но с одной заковыкочкой... если до этого были какие либо общения по теме... (весьма глупПо выкладывать решения в те ветки, где не было или почти не было обсуждения, как говорят наши деды - на нет и суда нет :о)

выложу ... позже, когда руки дойдут, потому как еще в процессе лакировки всего кода... а так если интересуетесь, то можно посмотреть на лоре

https://www.linux.org.ru/forum/development/15807363
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Kopilov
Сообщения: 870
ОС: [K]Ubuntu, Debian

Re: bash, передача команды строкой

Сообщение Kopilov »

sunjob писал(а):
13.07.2020 18:18
хорошим тоном, я считаю - так и делать, выкладывать решения... но с одной заковыкочкой... если до этого были какие либо общения по теме
Т.е. посты формата «сам спросил — сам ответил» (например, типа такого или https://unixforum.org/viewtopic.php?f=11&t=146834) Вам ни разу не пригождались?
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 269

Re: bash, передача команды строкой

Сообщение sunjob »

за себя я ответил! а вы... в своем стиле "сами спросили - сами и отвечайте"...
тут офтопить закончили! идите к другим!
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали: