Run Shell after click on button Рукописный шрифт - YAD

I have three shell scripts and I would like to run each рукописный шрифт after click on button in yad - lets say - I have one yad session with three buttons - if I click on one button I will open 1. рукописный шрифт - second button open 2. рукописный шрифт and so on. See my example bellow -

#!/bin/bash
files=$(yad --width 100 --height 100 --title "Choose the Shell Script" \
    --text="  Please enter analysis details:" \
    --button="ShellScript1:2" \
    --button="ShellScript2:3" \
    --button="ShellScript3:3" \
    --button="Cancel:1" \
    --on-top \
    --center \
)

ret=$?
[[ $ret -eq 1 ]] && exit 0

Thank you for any разрабатывает or help.

0
задан 8 January 2016 в 12:05

3 ответа

Я просто добавляю условие:

ret=$?

[[ $ret -eq 1 ]] && exit 0

if [[ $ret -eq 2 ]]; then

      /path/to/shell/1.sh
fi

if [[ $ret -eq 3 ]]; then

    /path/to/shell/2.sh

fi
0
ответ дан 29 September 2019 в 16:54

Альтернативы: 1. Вы могли использовать случай вместо если как это:

case $ret in
    1) /path/to/script1 ;;
    2) /path/to/script2 ;;
    3) /path/to/script3 ;;
esac
  1. Вы могли альтернативно назвать сценарии непосредственно от каждой кнопки без потребности управлять $? код возврата с помощью этого синтаксиса:

    - кнопка = "ShellScript1:bash/path/to/script1.sh"

В моем подобном сценарии с yad перечисляет, это хорошо работает:

yad --list --width=800 --height=600 --center \
    --button="Display":"/home/gg/Tests/yadabout.sh" --button="Cancel":0  \
    --column "ID" --column "File" \
    --column "Exec" "${list[@]}") 

Различие: при присвоении кода выхода / идентификатор к каждой кнопке, после нажатия кнопки yad возвраты, это - значение к переменной (файлы в коде) и yad диалоговые выходы.

, Если вместо этого идентификатор кнопки Вы присваиваете команду для выполнения (случай 2 выше) затем yad диалогового окна, остается на экране и не выходит. Но в этом режиме нет yad возвращаемого значения, и таким образом Вы не можете проанализировать выбор от yad диалогового окна до этой внешней команды/сценария (не уверенных 100%, но я не нашел способа сделать это все же).

0
ответ дан 29 September 2019 в 16:54

Уточнить предыдущий ответ:

processes=$(yad --width 100 --height 100 --title "Chose Process" --text="Select" --button="Run Cmd":1 --on-top --center)
ret=$?
if [[ $ret -eq 1 ]]; then
  /path/process.sh
fi
-1
ответ дан 29 September 2019 в 16:54

Другие вопросы по тегам:

Похожие вопросы: