Как поместить значение поля формы YAD в переменную после отправки?
Как поместить значение поля формы YAD в переменную после отправки?
Мой скрипт на самом деле выглядит так:
#!/bin/bash
default_jpg='/';
default_mp3='/';
default_resolution='1920:1080';
default_filename="/";
OUTPUT=$(yad \
--title="JPG and MP3 to MP4" \
--form \
--text="Options" \
--separator="," \
--field="JPG:FL" \
--field="MP3:FL" \
--field="Resolution" \
--field="MP4 (Output):SFL" \
--button="Create MP4":1 \
"$default_jpg" \
"$default_mp3" \
"$default_resolution" \
"$default_filename" \
) accepted=$?
if ((accepted == 1)); then
jpgfile=$( awk -F, '{print $1}' <<<$OUTPUT)
mp3file=$( awk -F, '{print $2}' <<<$OUTPUT)
resolution=$(awk -F, '{print $3}' <<<$OUTPUT)
filename=$( awk -F, '{print $4}' <<<$OUTPUT)
echo $jpgfile $mp3file $resolution $filename
fi
Я не могу поместить значения полей формы в переменную. Если это сработает, а не просто выводит переменные, я бы хотел использовать их в этой команде:
ffmpeg -r 1 -loop 1 -i "$jpgfile" -i "$mp3file" -acodec copy -r 1 -shortest -vf scale=$resolution "$filename"
Подскажите пожалуйста что не так:(
0 ответов
Как показано в этом сообщении, для анализа параметров формы из YAD в bash/shell в Linux вы можете:
VAR=$(echo $YAD_OUTPUT | awk 'BEGIN {FS="," } { print $1 }')
Куда:
VAR- это имя переменной, в которой вы хотите сохранить значение записи YAD.$YAD_OUTPUTговорит само за себя. В вашем случае вы назвали эту переменную "OUTPUT"FS=","- значение разделителя. В твоем случае, ",".$1это позиция первого--field. В вашем случае содержание$default_jpg(/).
Вот исправленный пример:
#!/bin/bash
default_jpg='/';
default_mp3='/';
default_resolution='1920:1080';
default_filename="/";
OUTPUT=$(yad \
--title="JPG and MP3 to MP4" \
--form \
--text="Options" \
--separator="," \
--field="JPG:FL" \
--field="MP3:FL" \
--field="Resolution" \
--field="MP4 (Output):SFL" \
--button="Create MP4":1 \
"$default_jpg" \
"$default_mp3" \
"$default_resolution" \
"$default_filename" \
) accepted=$?
if ((accepted == 1)); then
jpgfile=$(echo $OUTPUT | awk 'BEGIN {FS="," } { print $1 }')
mp3file=$(echo $OUTPUT | awk 'BEGIN {FS="," } { print $2 }')
resolution=$(echo $OUTPUT | awk 'BEGIN {FS="," } { print $3 }')
filename=$(echo $OUTPUT | awk 'BEGIN {FS="," } { print $4 }')
echo $jpgfile $mp3file $resolution $filename
fi
Начало этого ответа - помочь Google найти это решение.