Portál AbcLinuxu, 1. června 2025 03:18


Dotaz: Nefunguje skript

19.8.2007 18:28 pepe1 | skóre: 13 | blog: abcde
Nefunguje skript
Přečteno: 431×
Odpovědět | Admin
Podle fora Ubuntu jsem si stáhl skript pro zálohování souborů:
#!/bin/bash
#
# datum: 18.03.2007
# autor: TomAker (forum.ubuntu.cz)
#
#Definovani cest k zaloze
#------------------------
# Seznam souboru, ktere chceme zalohovat
SEZNAM_SOUBORU="/home/tomaker/Archiv/archivace.txt"
#
# Seznam souboru pro inkrementalni zalohu
ARCHIV_I="/home/tomaker/Archiv/archiv_i.txt"
#
# Chybove hlasky TARu
TAR_ERROR="/home/tomaker/Archiv/tar-error.txt"
#
# Zabaleny archiv (cesta/prefix)
BZ2_ARCHIV2="/home/tomaker/Archiv/archiv_"
#
# Chybove hlasky BZIP2
BZ2_ERROR="/home/tomaker/Archiv/bzip2-error.txt"
#
# Rozdeleny archiv (cesta/prefix)
ROZDELEN="/home/tomaker/Archiv/zaloha_"
#
case "$1" in
	full)
		echo Kompletni zaloha
		echo Vytvarim archiv...
		if [ "$#" -lt 2 ] || ( [ "$#" -eq 2 ] && [ "$#" -eq 0 ] ); then
			tar -c -T $SEZNAM_SOUBORU 2>$TAR_ERROR | bzip2 -9 >$BZ2_ARCHIV2`date +%y_%m_%d`'.tar.bz2' 2>$BZ2_ERROR;
		else
			tar -c -T $SEZNAM_SOUBORU 2>$TAR_ERROR | bzip2 -9 2>$BZ2_ERROR | split -b "$2" - $ROZDELEN`date +%y_%m_%d`'_'
		fi
		echo Zalohovani dokonceno
		;;
	inc)
		echo Inkrementalni zaloha
		echo Vytvarim archiv...
		if [ "$#" -lt 2 ] || ( [ "$#" -eq 2 ] && [ "$#" -eq 0 ] ); then
			tar -c -T $SEZNAM_SOUBORU -g $ARCHIV_I 2>$TAR_ERROR | bzip2 -9 >$BZ2_ARCHIV2`date +%y_%m_%d`'.tar.bz2' 2>$BZ2_ERROR;
		else
			tar -c -T $SEZNAM_SOUBORU -g $ARCHIV_I 2>$TAR_ERROR | bzip2 -9 2>$BZ2_ERROR | split -b "$2" - $ROZDELEN`date +%y_%m_%d`'_'
		fi
		echo Inkrementalni zalohovani dokonceno
		;;
	help)
		echo 'Priklad pouziti:'
		echo
		echo 'Plna zaloha:'
		echo '	archivace.sh full'
		echo
		echo 'Plna zaloha s rozdelenim archivu:' 
		echo
		echo 'Inkrementalni zaloha:'
		echo '	archivace.sh inc'
		echo
		echo 'Inkrementalni zaloha s rozdelenim archivu:'
		echo
		echo 'Napoveda'
		echo '	archivace.sh help'
		;;		
esac
V tomto souboru archivace.sh jsem správně nastavil cesty a seznam souborů pro zálohování. Pokud ho spustím příkazem "sh archivace.sh full" tak se v konzoli objeví jen tahle hláška: archivace.sh: 26: Syntax error: word unexpected (expecting "in"). Jinak se nic nezálohuje. Kde prosím hledat chybu? Ve skriptu asi chyba nebude protože někoho jde ok.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

regnarg avatar 19.8.2007 21:05 regnarg | skóre: 20 | blog: rm -rf /this/blog
Rozbalit Rozbalit vše Re: Nefunguje skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zajímavé je, že po zkopírování z tohoto příspěvku a uložení do souboru (clipget >pokus.sh) se chyba neprojeví. Možná jen ve vašem souborou jsou nějaké neviditelné znaky (na nich jsem se vychytal mnohokrát), nebo máte hodně podivný bash. Mě to například vytvořilo podobnou chybu, pokud byl soubor v DOS formátu (bash je na CR hodně náchylný). Zkusil bych skript z tohoto fóra zkopírovat do nového souboru nějakým rozumným nástrojem a vyzkoušet znovu...
S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
19.8.2007 21:22 ajikdpoe | skóre: 23 | blog: dvh
Rozbalit Rozbalit vše Re: Nefunguje skript
PSPad pridava na zaciatok suboru ktory je v utf nejake 3 divne znaky
regnarg avatar 19.8.2007 21:36 regnarg | skóre: 20 | blog: rm -rf /this/blog
Rozbalit Rozbalit vše Re: Nefunguje skript
A znáte nějaký racionální důvod, proč psát evidentně linuxový skript v PSPadu, když GNU/Linux nabízí tolik kvalitních editorů ? A jinak, nemyslím si, že by to bylo způsobeno UTF-8 BOM (tak se těm znakům říká), protože ty by způsobily problém na začátku a ne na řádku 26. Např. by kvůli nim nefungovalo #!, ale to při spouštění příkazem sh nehraje roli...
S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
19.8.2007 22:11 pepe1 | skóre: 13 | blog: abcde
Rozbalit Rozbalit vše Re: Nefunguje skript
regnarg: Moc díky za radu. Urcitě bych nepřišel že za problémy se spuštěním stojí nějaké neviditelné znaky. Celý skript jsem znovu uložil v editoru MC a šlape jako hodinky! Ještě jednou moc děkuji.
wolf09 avatar 20.8.2007 09:12 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Nefunguje skript
nekolikrat se mi uz stalo, ze uzivatelum nefungovaly scripty, ktere jsou urcite spravne. Vetsinou se jako prvni divam, jestli si to nestahli z Windows a namaji na koncich radku CR-LF

a nasledne davam dos2unix
Zkusili jste to vypnout a znovu zapnout ?
regnarg avatar 20.8.2007 11:17 regnarg | skóre: 20 | blog: rm -rf /this/blog
Rozbalit Rozbalit vše Re: Nefunguje skript
Já se zase často vychytám na tom, že místo mezery napíšu Pravý_Alt-mezerník (když třeba předchozí klávesu píšu s AltGr a nepustím ho včas), což vytváří cosi jako nbsp (samozřejmě na pohled nerozeznatelné od mezery), to se sice hodí při psaní textů, ale programovací jazyky to ne a ne pochopit...
S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
19.8.2007 22:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Nefunguje skript
Psát shellový skript v PSPadu je pořád racionálnější než cpát BOM do UTF-8 dokumentu…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.