Piszę sobie skrypt w powłoce, który ma na celu ułatwić mi życie przy konwersji materiału wideo (mencoder/ffmpeg windowsowe wersje źle działają), ale nie problem mam z mencoderem czy ffmpeg. Problemem jest przekazanie parametrów listy do programu whiptail (dialog mi wyświetla krzaczki w putty).
Kod: Zaznacz cały
#!/bin/bash
DEF_FMASK=Testowy*.txt
DEF_BASED=FTP/sda8
TMPF=/tmp/sh_script_temp_file.txt
TMPF1=/tmp/sh_script_temp_file1.txt
# create temp files
echo > $TMPF
echo > $TMPF1
# get basdir
whiptail --inputbox "Enter base directory" 8 40 "$DEF_BASED" 2> $TMPF
BASE_DIR=`cat $TMPF`
# trailing slash
lend=`expr substr $BASE_DIR ${#BASE_DIR} 1`
if [ $lend != / ] ; then
BASE_DIR="$BASE_DIR/"
fi
# get file mask
whiptail --inputbox "Enter file mask" 8 40 "$DEF_FMASK" 2> $TMPF
FILTER_FILES=`cat $TMPF`
if [ -f $TMPF1 ] ; then
rm $TMPF1
fi
#find $BASE_DIR -maxdepth 1 -type f -name "$FILTER_FILES" -printf "%f\n" > $TMPF
dlgopt=""
echo -e "\033[36mWorking dir: '$BASE_DIR' , File filter: '$FILTER_FILES'\033[0m"
for f in $BASE_DIR$FILTER_FILES
do
ff="${f##*/}"
echo -en " File: $ff\n"
dlgopt="$dlgopt '$ff' ' ' off"
done
echo -e "\033[32mSelectable items:\033[0m$dlgopt"
whiptail --separate-output --checklist "Select files" 25 75 17 $dlgopt 2>$TMPF
echo -en "\033[33mSelected items: \033[0m"
cat $TMPF
Kod: Zaznacz cały
$dlgopt
Kod: Zaznacz cały
Selectable items: 'Testowy plik 1 - test B.txt' ' ' off 'Testowy plik 2 - test A.txt' ' ' off 'Testowy plik 3 - test AC.txt' ' ' off 'Testowy plik 4 - test DAC.txt' ' ' off 'Testowy plik 5 - test AE.txt' ' ' off 'Testowy plik 7 - test BDZ.txt' ' ' off 'Testowy plik 8 - test BDG.txt' ' ' off 'Testowy plik 9 - test HAA.txt' ' ' off
Kod: Zaznacz cały
whiptail usage
Domyślam się, że rozwiązanie jest pewnie banalnie proste.