Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam,
Zachciało mi się (na moją zgubę :D ) napisać skrypt co miałby mi ułatwić przekodowywanie wideo. No właśnie miał ułatwić życie ale mi utrudnił :) , już od prawie tygodnia męczy mnie dlaczego to nie działa :/ . Może trochę kodu i wyjaśnię :)
#!/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 basedir 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" # 3 param: [Tag:FileName] [Text:space] [state:off] 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 echo -e "\n----------------- END SCRIPT ------------------------"
Problem z jakim się borykam jest to ,że w ostatnim dialogu gdzie powinna być lista plików z możliwością wybrania, jest "sieczka" :
Jeżeli wklepię tą linię z dialogiem normalnie w shellu i dokleję wynik z $dlgopt i tak to uruchomię to działa pięknie, a w skrypcie nie chce :( .
Lista plików to (pliki ze spacjami):
Testowy plik 1 - test B.txt Testowy plik 2 - test A.txt Testowy plik 3 - test AC.txt Testowy plik 4 - test DAC.txt Testowy plik 5 - test AE.txt Testowy plik 7 - test BDZ.txt Testowy plik 8 - test BDG.txt Testowy plik 9 - test HAA.txt
Rozwiązanie zapewnie jest banalnie proste :/ ,ale nie piszę skryptów na co dzień ale od święta ;) i po prostu nie wiem jak to zrobić żeby zadziałało...
Offline
Witamy na DUG-u,
aby zmienna została prawidłowo przetworzona jako element polecenia musisz skorzystać z eval:
eval "whiptail --separate-output --checklist 'Select files' 25 75 17 $dlgopt 2>$TMPF"
Ostatnio edytowany przez azhag (2011-09-29 22:28:00)
Offline
Strony: 1