The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Назначить сложную команду на yad button"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Назначить сложную команду на yad button"  +/
Сообщение от bicyclist56email (ok), 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="Выполнить"? Целый день игрался с разными кавычками, скобками и прочими спец.символами, сдался...

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от bicyclist56email (ok), 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
# Задание успешно создано

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

Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от DiabloPC (ok), 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"

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #4

3. Сообщение от DiabloPC (ok), 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"

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от bicyclist56email (ok), 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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #5

5. Сообщение от DiabloPC_пробегалemail (?), 18-Фев-21, 18:11   +/
На выходных гляну

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #6

6. Сообщение от bicyclist56email (ok), 19-Фев-21, 04:45   +/
А чего не на гит[лаб/хаб]? = Ибо еще сыровато, я же начинающий сочинитель :) Только что обновил архив.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру