URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10354
[ Назад ]

Исходное сообщение
"Назначить сложную команду на yad button"

Отправлено bicyclist56 , 10-Фев-21 06:20 
#! /bin/bash
# Есть работающий пример:
yad --center --borders=20 \
    --title="YAD Custom Dialog Buttons" \
    --button="Выполнить":"bash -c 'echo Yes!'" \
    --button="Exit"
# Задаю для простоты значения напрямую (на самом деле через форму yad):
HH=10
MM=30
TT="aplay /home/vvv/.local/share/sounds/timer.wav"
DD="03/10/21"
# Не создается at задача таким образом:
yad --center --borders=20 \
    --title="Запись задания" \
    --button="Выполнить":"echo $TT | at $HH:$MM $DD" \
    --button="Exit"
# И если в одну переменную:
CL="echo $TT | at $HH:$MM $DD"
# То тоже не работает:
yad --center --borders=20 \
    --title="Запись задания" \
    --button="Выполнить":"bash -c $CL" \
    --button="Exit"

Отдельной строкой успешно выполняется:
echo $TT | at $HH:$MM $DD

Вопрос: как правильно назначить эту команду на button="Выполнить"? Целый день игрался с разными кавычками, скобками и прочими спец.символами, сдался...


Содержание

Сообщения в этом обсуждении
"Назначить сложную команду на yad button"
Отправлено bicyclist56 , 10-Фев-21 06:50 
#! /bin/bash
HH=10
MM=30
TT="aplay /home/vvv/.local/share/sounds/timer.wav"
DD="03/10/21"
# Оказывается, все можно сделать очень просто,
# посмотрев значение $exval после нажатия нужной кнопки (нажатие ОК дает 0):
yad --title="Запись задания"
exval=$?
case $exval in
   0) echo $TT | at $HH:$MM $DD;;
esac
# Задание успешно создано

Тем не менее, прошу ответить на поставленный вначале вопрос, если это возможно.


"Назначить сложную команду на yad button"
Отправлено DiabloPC , 15-Фев-21 19:36 
#! /bin/bash
HH=18
MM=35
TT='echo aplay /home/diablopc/Music/Escala/Aerodynamic.mp3'
DD="03/10/21"
yad --center --borders=20 \
    --title="Запись задания" \
    --button="Выполнить":"$TT" \
    --button="Run":"$($TT | at $HH:$MM $DD)"\
    --button="Exit"


"Назначить сложную команду на yad button"
Отправлено DiabloPC , 15-Фев-21 19:42 

Ну или завернуть это в функцию и вызывать ее:
#! /bin/bash 
HH=18
MM=35
TT='echo aplay /home/diablopc/Music/Escala/Aerodynamic.mp3'
DD="03/10/21"

func_task(){
     $TT | at $HH:$MM $DD
}

yad --center --borders=20 \
     --title="Запись задания" \
     --button="Выполнить":"$TT" \
     --button="Run":"func_task"\
     --button="Exit"

Собственно это одно и то же, но в этом варианте больше ненужных строк


"Назначить сложную команду на yad button"
Отправлено bicyclist56 , 16-Фев-21 05:22 
yad --title="Запись задания" \
    --button="Выполнить":"$TT" \
    --button="Запись":"$($TT | at $HH:$MM $DD)"\
    --button="Exit"

К сожалению, не работает вариант, команда сразу срабатывает, и at задание создается, а кнопка Exit ничего не отменяет.
Более того, при просмотре через 'atq -c' созданного задания вижу, что команды $TT там нет вовсе. Вместо задания - одинокая скобочка '}'.
Cоздание же функции не проще проверки значения '$?'

Все это я затеял (впервые, можно сказать, на bash & yad) для удобства создания at задач, вывода напоминаний на экране, просмотра списка и тех, и других, а также их удаления. Еще в процессе, но если интересно, вот архивчик с содержимым - https://disk.yandex.ru/d/_Yhya3joETxq_A


"Назначить сложную команду на yad button"
Отправлено DiabloPC_пробегал , 18-Фев-21 18:11 
На выходных гляну

Зы
А чего не на гит[лаб/хаб]?


"Назначить сложную команду на yad button"
Отправлено bicyclist56 , 19-Фев-21 04:45 
А чего не на гит[лаб/хаб]? = Ибо еще сыровато, я же начинающий сочинитель :) Только что обновил архив.