Как запустить другие скрипты bash по нажатию кнопки YAD?
Код:
#!/bin/bash
# YAD GUI to the set of Shell Linux script
frmdata=$(yad --title "Input SRA accession number" --form --field
"SRA ID")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
echo $frmaddr > SRAIds.txt files=$(yad --width 100 --height 100
--title "Choose the action you want to be done" \
--text=" Please enter what to do:" \
--button="Download Files":"./fetch_sra_yad_zenity.sh"
\ # calling the other bash script on the button click
--button="Run alignment" \
--button="Process variant calling" \
--button="Cancel" \
--on-top \
--center \ )
ret=$?
[[ $ret -eq 1 ]] && exit 0
Необходимо запускать скрипты.sh по нажатию соответствующих кнопок, не пропуская кнопки. Как это исправить? Спасибо.
1 ответ
Ваш скрипт должен выглядеть так:
#!/bin/bash
# YAD GUI to the set of Shell Linux script
frmdata=$(yad --title "Input SRA accession number" /
--form --field "SRA ID")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
echo $frmaddr > SRAIds.txt
files=$(yad --width 100 --height 100 \
--title "Choose the action you want to be done" \
--text="Please enter what to do:" \
--button="Download Files:bash -c ./fetch_sra_yad_zenity.sh" \
--button="Run alignment" \
--button="Process variant calling" \
--button="Cancel" \
--on-top \
--center)
ret=$?
[[ $ret -eq 1 ]] && exit 0
Как видите, я добавил:
bash -c
к вашему сценарию, и он запускает команды. Чтобы быть более точным, эта строка должна выглядеть так:
--button='Download Files:bash - "./fetch_sra_yad_zenity.sh"'
это потому, что иногда вам может потребоваться выполнить команду с пробелами или даже некоторые команды - поэтому они должны быть в кавычках.