Strona 11 z 16
Odp: Przydatne skrypty
: 05 cze 2010, 17:31
autor: dk75
potrzebne czy nie, sprzątanie po sobie jest dobrym zwyczajem
Ja mam /tmp w RAM a i tak kasuję w swoich skryptach wszystko co tam zapisałem
Odp: Przydatne skrypty
: 07 cze 2010, 11:38
autor: empitt
Nie bardzo rozumiem czemu robisz takie coś:
Kod: Zaznacz cały
grep 'NO_PUBKEY' /tmp/keye | sed 's/.*NO_PUBKEY //'
skoro wszystko możesz zrobić w sedzie:
Kod: Zaznacz cały
sed -i '/NO_PUBKEY/!d;s/.*NO_PUBKEY //' /tmp/keye
Nie mówię, że zrobiłeś źle, ale tak wygląda ładniej i jeśli można zrobić wszystko przy użyciu jednego polecenia, to na ogół warto wykorzystywać wszystkie jego możliwości (a o sedzie dużo mówić raczej nie trzeba, ponieważ wystarczy zajrzeć do manuala i od razu widać jaka jest z niego potęga).
Oto moja wersja skryptu do pobierania brakujących kluczy:
Kod: Zaznacz cały
#!/bin/bash
echo 'Proszę czekać...'
x=0
while [ $x -ne 2 ]
do
sudo apt-get update 2> outfile > /dev/null
sed -i '/NO_PUBKEY/!d;s/.*NO_PUBKEY //' outfile &> /dev/null
gpg --keyserver 'x-hkp://gpg-keyserver.de' --recv-keys $(cat outfile) &> /dev/null
gpg --export --armor $(cat outfile) | sudo apt-key add - && echo 'true' > outfile || rm -f outfile
x=$(( $x + 1 ))
done
if [ -s outfile ]
then
echo -ne '\nPowiodło się'
rm -f outfile
else
echo -ne '\nNie powiodło się'
fi
echo ' (Naciśnij enter, aby zakończyć działanie skryptu)'
read
Odp: Przydatne skrypty
: 08 cze 2010, 12:07
autor: outslider
Ja nie do końca rozumiem, po co to naciskanie Enter na końcu skryptu? I z drobnostek dodałbym w przypadku niepowodzenia zakończenie z jakimś kodem, np. exit 1 czy coś.
Odp: Przydatne skrypty
: 08 cze 2010, 12:30
autor: LukAs
Ja nie do końca rozumiem, po co to naciskanie Enter na końcu skryptu? I z drobnostek dodałbym w przypadku niepowodzenia zakończenie z jakimś kodem, np. exit 1 czy coś.
Po to, żeby skrypt czekał na użytkownika z informacją "Powiodło się lub nie"
Kto co woli
Odp: Przydatne skrypty
: 08 cze 2010, 21:29
autor: empitt
outslider pisze:Ja nie do końca rozumiem, po co to naciskanie Enter na końcu skryptu? I z drobnostek dodałbym w przypadku niepowodzenia zakończenie z jakimś kodem, np. exit 1 czy coś.
Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.
EDIT:
Proste polecenie do sprawdzania połączenia z internetem:
Kod: Zaznacz cały
ping -c 1 209.85.129.105 &> /dev/null && echo 'Jest połączenie' || echo 'Brak połączenia'
lub skrypt:
Kod: Zaznacz cały
#!/bin/bash
wget -q -t 10 -T 5 209.85.129.105 -O net
if [ $? != '0' ] ; then
echo -n 'Brak połączenia'
else
echo -n 'Jest połączenie'
fi
echo ' (Naciśnij enter, aby zakończyć działanie skryptu)'
rm -f net
read
W obydwu przypadkach efekt końcowy jest taki sam.
Odp: Przydatne skrypty
: 08 cze 2010, 22:00
autor: LukAs
Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.
Nie koniecznie bo wynik zakończenia przechowuje zmienna $?, a wynik ten można przypisać innej zmiennej, a potem się do niej odwołać itd. Nie jest to potrzebne chyba, że ktoś nas o to poprosi bo np. chce wykorzystać nasz skrypt i wywołać go w swoim programie. Jest jeszcze możliwość grupowania poleceń {} lub (), ale i to zależy od programisty jak to wszystko rozwiąże.
Odp: Przydatne skrypty
: 09 cze 2010, 11:12
autor: outslider
Nie chcę robić offtopa, ale:
Jeśli ktoś będzie uruchamiać skrypt standardowo w konsoli, to exit może być, ale jak ktoś będzie odpalać go poprzez dwuklik, to exit wyłączy skrypt i skąd użytkownik będzie wiedział jaki był końcowy wynik? Dlatego w tym przypadku lepiej pasuje read od exit.
Ale jak ktoś odpali przez dwuklik to i tak nie zobaczy, co pokazało echo;p. Mało tego, wtedy nie będzie można wyłączyć skryptu przez klawisz Enter, bo skrypt nie będzie czytał z stdin. Więc to tym gorzej, bo skrypt będzie wisiał w procesach jedyne co robiąc to czekając na Enter, który nie nadejdzie...
A jak będzie z GUI (zenity czy kdialog) to i tak trzeba kliknąć na przycisk, zanim okno zniknie.
Ok, dobra, już się na ten temat nie wypowiadam, bo nie po to wątek.
-----edit-----
żeby nie mnożyć postów nad miarę:
empitt, to znaczy, że u Ciebie po dwukliku pojawia się konsola? U mnie nie, u mnie skrypt uruchomiony dwuklikiem działa w tle. Dlatego napisałem, że nie ma to sensu. Skoro jednak u Ciebie tak to wygląda, to widać bywają sytuacje, gdzie jest to przydatne;p
Odp: Przydatne skrypty
: 09 cze 2010, 13:38
autor: empitt
To w takim bądź razie dlaczego ja widzę, dlaczego u mnie echo wyświetla wynik końcowy, hmm..?
Odp: Przydatne skrypty
: 10 cze 2010, 01:15
autor: LukAs
Rozszerzenie dla Nautilusa, które doda z plików listę repozytoriów
Zacząłem pisać ten prosty skrypt dobre pół roku temu, ale że z sudo działał w postaci jednej linii, a z gksu czy gksudo już nie, to napisałem go w takie postaci jak widzicie.
Główny skrypt
Kod: Zaznacz cały
#!/bin/bash
## REPO ADD 0.3
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3
OPTIONS=$( zenity --title="Dodaj Repozytorium" --text="Wybierz opcje z poniższej listy" --list --checklist --column="Wybór" --column="Lista opcji" \
FALSE "Nazwij repozytorium" \
FALSE "Odśwież listę pakietów" \
FALSE "Edytuj plik \"sources.list\"" )
[ "$?" = 1 ] && exit 1
for REPO_FILE in "$@"
do
echo "$OPTIONS" | grep -q "Nazwij repozytorium" \
&& { REPO_NAME=$( zenity --width=300 --entry --title="Dodaj Repozytorium" --text="Nazwa repozytorium dla \"$REPO_FILE\"" ); DIALOG_NAME="$?"; }
[ "$DIALOG_NAME" = 1 ] && exit 1
export REPO_FILE
export REPO_NAME
gksu -k "$HOME/.gnome2/nautilus-scripts/.repo_add" ; REPO_ADD=$?
[ $REPO_ADD = 0 ] \
&& notify-send -t 2500 -i dialog-apply 'Gotowe' "Repozytorium \"$REPO_NAME\" dodane do listy." \
|| notify-send -t 2500 -i dialog-warning 'Błąd' 'Coś poszło nie tak.'
done
echo "$OPTIONS" | grep -q "Odśwież listę pakietów" \
&& gksu apt-get update \
| zenity --title="Odświeżania listy pakietów" --text="Proszę cierpliwie czekać, może to chwilę potrwać." --progress --pulsate --auto-close
echo "$OPTIONS" | grep -q "Edytuj plik \"sources.list\"" \
&& gksu gedit /etc/apt/sources.list
Skrypt, któremu exportuję wartość zmiennej z listy
Kod: Zaznacz cały
#!/bin/bash
## REPO ADD 0.3
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3
echo -e '## Dodane przez rozszerzenie' \"Dodaj Repozytorium\" 'dnia' $(date +%d.%m.%Y) 'o godzinie' $(date +%X) "\n## $REPO_NAME" \
| tee -a /etc/apt/sources.list
sed -e '/^$/d' < "$REPO_FILE" | tee -a /etc/apt/sources.list
Program Install. Nie chciało mi się inaczej
Kod: Zaznacz cały
#!/bin/bash
for FILE in *
do
[ "$FILE" != Install ] && [ "$FILE" != README ] \
&& chmod u+x "$FILE" && cp -p "$FILE" "$HOME/.gnome2/nautilus-scripts" \
&& echo -e 'Kopiowanie pliku' \""$FILE"\" '[\E[31m OK \E[0m]' \
|| echo -e 'Kopiowanie pliku' \""$FILE"\" '[\E[32m NO \E[0m]'
done
mv "$HOME/.gnome2/nautilus-scripts/repo_add" "$HOME/.gnome2/nautilus-scripts/.repo_add"
echo -e '\n\E[31m Jeśli chcesz być informowany o procesie aktualizacji, doinstaluj dymki.\n Możesz to zrobić wpisująć w terminalu:\E[0m sudo apt-get install libnotify-bin\n'
read -p 'Naciśnij dowolny klawisz aby zakończyć: '
Video Prezentacja, paczka do pobrania, opis na
http://ospulse.pl
30.06.2010
Na stronie znajduje sie wersja 0.2 z kilkoma nowościami + prezentacja video.
08.07.2010
Wersja 0.3 z możliwością edytowania pliku sources.list. Wideo prezentacja + gotowa paczuszka- odsyłam na strone.
Odp: Przydatne skrypty
: 15 lip 2010, 16:33
autor: zwieracz
Jeśli wkurzają Was "okienkowe" nazwy plików - poniżej skrypcik, który wywołany w danym katalogu (z subdirami) zmienia w nazwach plików duże litery na małe oraz inteligentnie spacje na podkreślenia:
Kod: Zaznacz cały
#!/bin/sh
if [ -n "$1" ]
then
if [ -d "$1" ]
then
cd "$1"
else
echo invalid directory
exit
fi
fi
for i in *
do
OLDNAME="$i"
NEWNAME=`echo "$i" | tr ' ' '_' | tr A-Z a-z | sed s/_-_/-/g`
if [ "$NEWNAME" != "$OLDNAME" ]
then
TMPNAME="$i"_TMP
echo ""
mv -v -- "$OLDNAME" "$TMPNAME"
mv -v -- "$TMPNAME" "$NEWNAME"
fi
if [ -d "$NEWNAME" ]
then
echo Recursing lowercase for directory "$NEWNAME"
$0 "$NEWNAME"
fi
done
Drugi bardzo miły dla mnie - zamiana wav na mp3:
Kod: Zaznacz cały
#!/bin/bash
for i in *.wav
do
lame -h -b 192 "$i" "$i.mp3"
done
... aby nie zostały głupie nazwy plików - usuwamy *wav*:
Kod: Zaznacz cały
#! /bin/sh
for a in *.wav.mp3; do mv $a `basename $a .wav.mp3`.mp3; done
Odp: Przydatne skrypty
: 19 sie 2010, 15:55
autor: Miziak
Mam dla was skrypt do conky wszak może bash to nie jest ale pewnie komuś się przyda:
O skrypcie:
Skrypt głównie dla młodzieży szkolnej/studentów!
Od dziś conky podpowie nam jakie lekcje mamy jutro nie będziecie już musieli szukać kartek z planem lekcji!!!
Nie dziwcie się, że skrypt nie działa po instalacji bowiem jest on tak napisany aby nie działał w wakacje oraz soboty, w niedziele działa ponieważ pokazuje plan na poniedziałek!
Wymagania pakiet lua dostępny w repo bodajże:
w miejscu gdzie trzymacie skrypty robicie plik
plan.lua i wklejacie do niego to:
Kod: Zaznacz cały
local user = "miziak" --podajemy nazwę naszego użytkownika
local nazwy, dzien, plan = {"poniedzialek", "wtorek", "sroda", "czwartek", "piatek"}, tonumber(os.date("%w"))+1, ""
local bool = false
for line in io.lines("/home/"..user.."/Dokumenty/plan lekcji") do
if(line:lower():find(nazwy[dzien]))then
if(not bool)then
bool = true
plan = "Plan na jutro(" .. nazwy[dzien] .. ") to:\n"
else
break
end
else
plan = plan .. line .. "\n"
end
end
print(plan)
oraz w tym samym folderze plik
plan.sh i wklejacie do niego:
Kod: Zaznacz cały
#!/bin/bash
jutro=$(date +%w)
jutro=$((($jutro+1)%7))
miesciac=$(date +%m)
if [[ "$miesciac" != "08" && "$miesciac" != "07" ]]
then
if [ "$jutro" != "6" ]
then
echo ""
lua /home/miziak/.skrypty_conky/plan.lua
fi
fi
Teraz w
~/.conkyrc dodajecie linnię:
Oczywiście podajecie własną lokację skryptu
plan.sh.
Teraz w folderze pod tytułem
Dokumenty(jest on na partycji /home) tworzymy zwykły plik i nazywamy go
plan lekcji jest to plik konfiguracyjny skryptu wklejasz do niego:
Poniedzialek:
1
2
3
4
5
6
7
8
9
Poniedzialek:
Wtorek:
1
2
3
4
5
6
7
8
9
Wtorek:
Sroda:
1
2
3
4
5
6
7
8
9
Sroda:
Czwartek:
1
2
3
4
5
6
7
8
9
Czwartek:
Piatek:
1
2
3
4
5
6
7
8
9
Piatek:
Między nazwami dni umieszczamy swój plan lekcji nie musi ich być koniecznie 9 może być nawet jedna
Kod: Zaznacz cały
local user = "miziak" --podajemy nazwę naszego użytkownika
W tej linijce skryptu lua postępujemy zgodzie z jej opisem
Pozdrawiam,
Miziak
Odp: Przydatne skrypty
: 10 wrz 2010, 21:31
autor: schi2m
To i ja od siebie dodam dwa skrypty które właśnie ukończyłem. Oba to skrypty nautilusa.
pierwszy usuwa wszelkie spacje z nazw zaznaczonych plików:
Kod: Zaznacz cały
#!/bin/bash
clear
messages="Wprowadzono następujące modyfikacje:"
for oldName in "$@"
do
path="$NAUTILUS_SCRIPT_CURRENT_URI"
path=${path##file:\/\/}
newName=${oldName//\ /\_}
if [ "$oldName" != "$newName" ]; then
messages="${messages}\nmv \"$path/$oldName\" \"$path/$newName\""
mv "$path/$oldName" "$path/$newName"
else
messages="${messages}\n$oldName: spacji do wyczyszczenia "
fi
done
echo -e $messages | zenity --text-info --width 530
drugi czyści nazwy plików tak by nie posiadały znaków "_","%20" i w ich miejsce wstawia spację. Przydatne np. po pobraniu downloadHelperem (wtyczka do firefox) jakiejś mp3 z wrzuty. Wtedy zwykle nazwy plików posiadają przezemnie wcześniej wymienione śmieci.
Kod: Zaznacz cały
#!/bin/bash
clear
messages="Wprowadzono następujące modyfikacje:"
for oldName in "$@"
do
path="$NAUTILUS_SCRIPT_CURRENT_URI"
path=${path##file:\/\/}
newName=${oldName//\_/ }
newName=${newName//\ \ / }
newName=${newName//\%20/ }
newName=${newName//\ \./\.}
if [ "$oldName" != "$newName" ]; then
messages="${messages}\nmv \"$path/$oldName\" \"$path/$newName\""
mv "$path/$oldName" "$path/$newName"
else
messages="${messages}\n$oldName: spacji do wyczyszczenia "
fi
done
echo -e $messages | zenity --text-info --width 530
EDIT:
i jeszcze jeden skrypcik. Dodałem go sobie w ubuntu do automatycznego uruchamiania w momencie logowania. Pozwala on na zamontowanie dysków zaszyfrowanych za pomocą true crypt. Oczywiście należy podać swoje opcje montowania (urządzenia, katalogi montowania):
Kod: Zaznacz cały
#! /bin/bash
clear
sudo -k
wynik=""
i=0
while [ "$wynik" = "" ]; do
if [ $i = 3 ]; then
exit 1
fi
haslo=$(zenity --entry \
--title="Podaj hasło root" \
--text="Podaj hasło root:" \
--entry-text "" \
--hide-text)
wynik=$(echo $haslo | sudo -kS ls -al)
i=$i+1
if [ "$haslo" = "" ]; then
anulowac=`zenity --question --text="Nie podałeś hasła, czy chcesz anulować?"; echo $?`
if [ "$anulowac" = "0" ]; then
exit 1
fi
fi
if [ "$wynik" != "" ]; then
echo $haslo | sudo -S ls -al
fi
done
haslo=$(zenity --entry \
--title="Podaj hasło trueCrypt" \
--text="Podaj hasło trueCrypt:" \
--entry-text "" \
--hide-text)
sudo truecrypt -d;
sudo truecrypt -p=$haslo /dev/sdb1 /media/truecrypt1
sudo truecrypt -p=$haslo /dev/sda3 /media/truecrypt2
sudo -k
Odp: Przydatne skrypty
: 13 wrz 2010, 23:37
autor: PTH
Skrypt ułatwiający ściąganie np. filmików z youtube
Wykorzystuje to, że podczas oglądania system tworzy plik flashowy w katalogu /tmp
Sprawdza, czy w/tmp jest taki plik, kopiuje go do wybranego katalogu, konwertuje na avi.
Kod: Zaznacz cały
#!/bin/bash
# tmp.sh data: 13wrz2010 wersja: 0.4
# skrypt wykonujący kopię plików flash z katalogu ~/tmp
if [ -e /tmp/Flash* ]
then
cp /tmp/Flash* ~/skrypty/tmp_flash/
cd ~/skrypty/tmp_flash/
ffmpeg -i Flash* -b 780000 $(date '+%F_%M').avi # konwertuje na avi (wymaga zainstalowania ffmpeg)
rm Flash*
echo "plik skopiowany"
else
echo "brak pliku do skopiowania"
fi
Odp: Przydatne skrypty
: 15 wrz 2010, 09:54
autor: outslider
Dobre, PTH, chciałem coś takiego zmontować, ale nie wiedziałem, że kopia filmu jest w /tmp, myślałem, że tylko w katalogach podręcznych przeglądarek, a tam jest taki bajzel, że nie mogłem wyłuskać sensownie najnowszego filmu:D
Zmieniłbym tylko, żeby output był w katalogu, w którym jest skrypt odpalany:
Kod: Zaznacz cały
#!/bin/bash
# tmp.sh data: 13wrz2010 wersja: 0.4
# skrypt wykonujący kopię plików flash z katalogu ~/tmp
if [ -e /tmp/Flash* ]
then
cp /tmp/Flash* .
ffmpeg -i Flash* -b 780000 $(date '+%F_%M').avi # konwertuje na avi (wymaga zainstalowania ffmpeg)
rm Flash*
echo "plik skopiowany"
else
echo "brak pliku do skopiowania"
fi
Chyba poprawna modyfikacja? Nie testowałem.
Odp: Przydatne skrypty
: 15 wrz 2010, 21:42
autor: PTH
1. Dzięki za uznanie
2. Oczywiście każdy użytkownik może sobie samodzielnie ustalić do jakiego katalogu skopiuje pliki
3. wprowadzona przez Ciebie modyfikacja kopiuje do ~/home/, więc nie zawsze będzie to ten w którym jest skrypt
Odp: Przydatne skrypty
: 16 wrz 2010, 09:56
autor: outslider
1. Nie ma za co, należało się;)
2. No tak, demokracja jest...
3. Wydaje mi się, że katalog "." oznacza bieżący katalog, więc jak ktoś odpali skrypt z jakiegoś katalogu (cd /katalog; /ścieżka/do/skryptu) to skopiuje do bieżącego, czy się mylę?
4. A, no i użytkownik musi wiedzieć, że skrypt odpalamy po zbuforowaniu pliku! Możnaby dodać sprawdzanie, np. w odstępie 3-4 sek. czy plik jeszcze rośnie, ale to chyba mnożenie bytów ponad miarę...
Odp: Przydatne skrypty
: 18 wrz 2010, 13:45
autor: kapat
Aktualizacja:
Wednesday, February 23 2011
Wywoływanie.
jpg-cliner.sh -
uruchomi GUI zenity
jpg-cliner.sh -c - uruchomi tryb consolowy
Dostępne Opcje:
Kod: Zaznacz cały
USAGE: /media/Nowy/Dokumenty/Programming/Script/Software/jpg-cliner.sh <option> <Source> <Destinity>
-c Starting in text mode.
usage: /media/Nowy/Dokumenty/Programming/Script/Software/jpg-cliner.sh -c <Source> <Destinity>
-q --quiet Quiet mode. Does not display any messages
Author: Tomasz "Kapat" Kapuściarek
Mail: kapuściarek[at]gmail.com
Skrypt segreguje zdjęcia na bazie JHead tworząc strukturę katalogów
Kod: Zaznacz cały
/home/xxx/zdjecia/2009/01.Styczen/
/home/xxx/zdjecia/2010/04.Kwiecien/
Skrypt jest w wersji rozwojowej, mile widziane sugestie
Kod: Zaznacz cały
#! /bin/bash
#################################################################################
#
### SKRYPT PORZADKUJĄCY ZDJĘCIA NA BAZIE EXIF
# Autor: Kapat
# Mail: kapusciarek[at]gmail.com
#
################################################################################
# Tablica przechowująca nazwy miesięcy, wykorzystywane do tworzenia katalogów
# Używana przez funkcje createDir
TABLE=(Styczen Luty Marzec Kwiecein Maj Czerwiec Lipiec Sierpien Wrzesien Pazdziernik Listopad Grudzien)
#Domyślne ścieżki prgramów
EXIF="/usr/bin/jhead"
# Separuje z exifa daty
parseDate() {
YEAR=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print substr($2,2)}')
MONTH=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print $3}')
DAY=$(jhead ${1} | awk '{FS=":"} /Date\/Time/ {print substr ($4,0,2)}')
}
# Tworzy Katalogi Na bazie Exif
createDir() {
STRMONTH=${TABLE[$(echo $MONTH | awk '{if (/^0/) print substr ($0,2); else print}')-1]}
VERBOSE="$1"
if [ -d $destDIR/$YEAR ]
then
echo -n
else
if [ $VERBOSE -eq '0' ]
then
echo -e "[CR]\\t$destDIR$YEAR"
fi
mkdir $destDIR/$YEAR
fi
if [ -d $destDIR/$YEAR/$MONTH.$STRMONTH ]
then
echo -n
else
if [ $VERBOSE -eq 0 ]
then
echo -e "[CR]\\t$destDIR$YEAR/$MONTH.$STRMONTH"
fi
mkdir $destDIR/$YEAR/$MONTH.$STRMONTH
fi
}
# Przenosi Plik do katalogu destDIR
mvFiles() {
PLIK=$(echo ${1} | sed 's/^.*\///g')
VERBOSE="${2}"
if [ -e "$destDIR$YEAR/$MONTH.$STRMONTH/$PLIK" ]
then
echo -n
else
if [ $VERBOSE -eq 0 ]
then
echo -e "[MV]\\t$destDIR$YEAR/$MONTH.$STRMONTH/$PLIK"
fi
mv $1 $destDIR$YEAR/$MONTH.$STRMONTH/
fi
}
# Wyświetla Pomoc
Help_MSG () {
echo
echo -e "USAGE: $0 <option> <Source> <Destinity>"
echo
echo -e "-c\\t\\t\\tStarting in text mode."\
"\\n\\t\\t\\tusage: $0 -c <Source> <Destinity>\\n"
echo -e "-q\\t--quiet\\t\\tQuiet mode. Does not display any messages\\n"
echo -e "\\t Author: Tomasz \"Kapat\" Kapuściarek\\n" \
"\\t Mail: kapuściarek[at]gmail.com"
}
# Zmienia nazwę plików z dużych na małe litery
Change_Exception() {
for FILE in $srcDIR*.[jJ][pP][gG]
do
if [ $FILE == *.[jJ][pP][gG] ]
then
break
else
jhead -n%Y-%m-%d_%H-%M-%S $FILE #>> error.log
fi
done
}
# Funkcja Główna wywoływana w MAIN
JPG_clean() {
for FILES in `ls $srcDIR*.jpg`
do
parseDate $FILES
createDir 0
mvFiles $FILES 0
done
}
GUI_getDirectory() {
TITLE="$1"
DIR=$(zenity --file-selection --directory --title=$TITLE)
case $? in
0)
ERROR="0";;
1)
ERROR="1";;
-1)
ERROR="-1";;
esac
}
### GUI FUNCTION
GUI_ChangeDirectory() {
GUI_getDirectory "Source"
if [ $ERROR = "1" ]
then
zenity --info --text="\nAnulowanie na życzenie użytkownika.\n"
elif [ $ERROR = "-1" ]
then
zenity --error --text="Zakończenie skryptu nieznany błąd"
else
srcDIR="$DIR/"
GUI_getDirectory "Destinity"
if [ $ERROR = "1" ]
then
zenity --info --text="\nAnulowanie na życzenie użytkownika.\n"
else
destDIR="$DIR/"
GUI_ProgressBAR
fi
fi
}
# Wyświetla Pasek posŧepu przenoszenia plików z katalogu
# Źrudłowego do Docelowego
GUI_ProgressBAR () {
cd $srcDIR
FileCount=$(ls *.[Jj][Pp][Gg]|wc -l)
(for FILES in $(ls *.[Jj][Pp][Gg])
do
COUNTER=$(ls *.[Jj][Pp][Gg]|wc -l)
STEP=$(($COUNTER*100/$FileCount))
#Tu jest jakiś błąd z jheadem sptawdzić
#jhead -n%Y-%m-%d_%H-%M-%S $FILES
parseDate $FILES
createDir 1
mvFiles $FILES 1
# TU Już nie
echo $((100-$STEP))
done) | zenity --progress --title="Progress" --text="Scanning Pictrue ..." \
--percentage=0
}
if [ "$1" = "-h" ] || [ "$1" = "--help" ] # Wywołanie okna Pomocy
then
Help_MSG
elif [ "$1" = "-c" ]
then
srcDIR="$2" # Katalog źródłowy
destDIR="$3" # Katalog Docelowy
echo -e "SRC: $srcDIR \\t DEST: $destDIR "
Change_Exception
JPG_clean
else
GUI_ChangeDirectory
fi
Odp: Przydatne skrypty
: 21 wrz 2010, 08:11
autor: LukAs
@PTH, fajnie gdybyś to w demona zamienił tak, żeby z automata kopiował pobrany obraz video. Tylko, że flash to takie dziadostwo, że nigdy nie wiadomo jak się zachowa i film może być uszkodzony lub niepełny.
możnaby dodać sprawdzanie, np. w odstępie 3-4 sek. czy plik jeszcze rośnie, ale to chyba mnożenie bytów ponad miarę...
O ile buforowanie nie zostanie przerwane bo z tym to każdy wie jak jest
Jakby się człowiek nie starał, to i tak będzie źle.
Odp: Przydatne skrypty
: 23 wrz 2010, 21:54
autor: PTH
@LuKas: myślałem o tym, ale zrezygnowałem - obawiałem się, że automatyczne ściąganie i konwertowanie każdego pliku zbytnio mi zmuli kompa.
Poza tym nie każdy flv chcę ściągnąć na dysk J
Zastosowałem półśrodek w postaci aliasu 'tmp' - używam go za każdym razem, gdy chcę odpalić mój skrypt
pliki youtube w /tmp/
: 29 wrz 2010, 13:12
autor: yossarian212
witam wszystkich bo jestem tu nowy
myslalem i niewymysliem
otoz zawsze jak ogladam cos na youtube to filmiki zapisuja mi sie z /tmp/ jako FlashXX cos tam cos tam
napisalem sktypt ktory kopiuje wszystkie te pkiki do gdziestam
#!/bin/bash
cp /tmp/Flash* /home/p/Pulpit/
ale kopiuje wszystkie, nawet te niedokonczone a chcialbym zeby automatycznie kipiowal dopiero jak sie zassa caly a na youtube czerwony pasek dojdzie do konca,
z gory dzieki
ps, zeby jakas roznica byla miedzy plikami niedokonczonymi i skonczonymi, a tu nic, guzik, oba sa take same, nazwa, rowszezenia wogole niema, tylko data i rozmiar sie rozni
a ja jestem cienki w tych sprawach
milego
pomozecie ?