Komischer Fehler???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Komischer Fehler???

Beitrag von latenite » 30.09.2009 15:04:49

Hallo Leute

ich schreib grad an nem Script rum und habe da eine Auswahl mit "case". Wenn ich in die einzelnen cases statt

Code: Alles auswählen

echo "hioer passiert was..."
ein

Code: Alles auswählen

cat << EOF
hier passiert was ..
EOF
packe also so

Code: Alles auswählen

function part_default () {
device=$1
echo "default party"
fdisk -l $device
echo "Is this the device you want to use? y/n"
read choice
case ${choice} in
y)
	cat << EOF
	################################################################################
	echo " wiping partitiontable of \"$device\" "
	################################################################################
	EOF
	dd if=/dev/zero bs=1 count=66 seek=466 of=$device
	new_device=`echo ${device} | cut -d"/" -f3`
	sed s/sda/${new_device}/g ${PATHPREFIX}/defaults_configs/default_part_table.txt > ${PATHPREFIX}/defaults_configs/current_part_table.txt
	swapoff -a
	sfdisk $device < ${PATHPREFIX}/defaults_configs/current_part_table.txt;;
n)
	echo "Then which one is it? Select by number"
	DEVICES=`find /dev/ -type b | cat | grep [a-z]$`
	select device in $DEVICES; do
	echo $device
	break;done
	cat << EOF
	################################################################################
	echo "wiping partitiontable of \"$device\" "
	################################################################################
	EOF
	dd if=/dev/zero bs=1 count=66 seek=466 of=$device
	new_device=`echo ${device} | cut -d"/" -f3`
	sed s/sda/${new_device}/g ${PATHPREFIX}/defaults_configs/default_part_table.txt > ${PATHPREFIX}/defaults_configs/current_part_table.txt
	swapoff -a
	sfdisk $device < ${PATHPREFIX}/defaults_configs/current_part_table.txt;;
*)
echo "Take your pick. y/n?" ${FUNCNAME};;
esac
}
dann gibt es einen Fehler: diesen >

Code: Alles auswählen

./subscripts/partitioning.sh: line 87: syntax error near unexpected token `}'
./subscripts/partitioning.sh: line 87: `} # end of part_interactive'
Nur mit echo geht's.

Die Frage ist: warum kann ich in den "Cases" kein HEREDOC verwenden?

Danke :D

p.s. vorsicht bei dieser funktion....die löscht den MBR also bitte NICHT ausführen 8O 8O 8O

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Komischer Fehler???

Beitrag von GoKi » 30.09.2009 15:13:49

Das EOF muss ganz nach links, es darf nicht eingerückt sein.
MfG GoKi
:wq

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: Komischer Fehler???

Beitrag von latenite » 02.10.2009 21:12:48

ups. danke :) manchmal kann man ewig auf so was gucken und dann sind's die einfachsten Sachen.
Danke echt! :D

Antworten