EOF für Variable nutzen

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

EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 17:40:45

Hallo Leute,

Ich hab mal eine Frage zu "hereDocuments". Ich möchte fdisk gern aus einen script heraus bedienen und dachte da an so was:

Code: Alles auswählen

#!/bin/bash


HEREDOC_VAR_1=1


HEREDOC_VAR_2='<< EOF
p
p
q
EOF'


HEREDOC_VAR_3='<< EOF
p
q
EOF'

echo $HEREDOC_VAR_1
#echo $HEREDOC_VAR_2
echo $HEREDOC_VAR_3

fdisk /dev/sda $HEREDOC_VAR_2

Wie stelle ich das an?

Danke

Benutzeravatar
pinguino
Beiträge: 147
Registriert: 23.01.2007 23:11:46

Re: EOF für Variable nutzen

Beitrag von pinguino » 27.09.2009 18:11:04

was wäre, wenn du folgendes machst:

Code: Alles auswählen

while read var
do

...

done << ENDE

fdisk hier ....

ENDE

dann hättest du fdisk in var
Gruß

Pinguino

>>Nota bene<<

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 18:12:21

Ich komm einfach nicht drauf?

HELP pleeeeeease :(

Code: Alles auswählen

#!/bin/bash


HEREDOC_VAR_1=1


HEREDOC_VAR_2=$(cat <<EOF
p
q
EOF
)


HEREDOC_VAR_3=$(cat <<'EOF'
p
p
q
EOF
)

echo $HEREDOC_VAR_1
echo $HEREDOC_VAR_2
echo $HEREDOC_VAR_3

fdisk /dev/sda << $HEREDOC_VAR_2

echo "so gehts..."

fdisk /dev/sda << EOF
p
q
EOF

Benutzeravatar
pinguino
Beiträge: 147
Registriert: 23.01.2007 23:11:46

Re: EOF für Variable nutzen

Beitrag von pinguino » 27.09.2009 18:37:10

möchtest du

Code: Alles auswählen

fdisk -l
herauslesen?
Gruß

Pinguino

>>Nota bene<<

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 18:42:18

nein p und q sind nur beispiele. ich möchte ein partitionierungsscript schreiben.
fdisk -l kenne ich :wink:

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 18:47:02

@ pinguino

ich versteh den code nicht..sorry...kannst du das mal erleutern..oder "komplett" lauffähig machen?

Code: Alles auswählen

while read var
do

...

done << ENDE

fdisk hier ....

ENDE

Benutzeravatar
pinguino
Beiträge: 147
Registriert: 23.01.2007 23:11:46

Re: EOF für Variable nutzen

Beitrag von pinguino » 27.09.2009 18:54:29

so z.B

Code: Alles auswählen

#!/bin/bash


while read var

do

echo "$var"

done << ENDE

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007bdad

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1         632     5076508+  83  Linux
/dev/hda2             633        9729    73071652+   5  Extended
/dev/hda5             633         754      979933+  82  Linux swap / Solaris
/dev/hda6             755        9729    72091656   83  Linux

Disk /dev/sda: 100.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       19457   156288321    c  W95 FAT32 (LBA)

ENDE
Gruß

Pinguino

>>Nota bene<<

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 19:04:41

Ich raff s immer nich nicht... dein code gibt doch nur aus was zwischen den EOF's steht.
Da ist keine Variable die die ABFOLGE FÜR fdisk hält.
Und auch kein Aufruf von fdisk.

Sorry vielleciht stell ich mich blöd an...zu laaaange schon rumprobiert und kirre im Kopf

Kannst du s noch mal zeigen?

Danke

Benutzeravatar
pinguino
Beiträge: 147
Registriert: 23.01.2007 23:11:46

Re: EOF für Variable nutzen

Beitrag von pinguino » 27.09.2009 19:15:52

latenite hat geschrieben:... Ich möchte fdisk gern aus einen script heraus bedienen und dachte da an so was:
....
ich habe das so interpretiert, daß du fdisk schon im Skript hattest
Gruß

Pinguino

>>Nota bene<<

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 19:20:41

ja habe ich und ich will es mit der variable füttern.

So gings:

Code: Alles auswählen

#!/bin/bash


HEREDOC_VAR_1=1


HEREDOC_VAR_2='p
q
'


HEREDOC_VAR_3='p
p
q
'

echo $HEREDOC_VAR_1
echo $HEREDOC_VAR_2
echo $HEREDOC_VAR_3

echo "$HEREDOC_VAR_2" | fdisk /dev/sda
danke (gelöst)

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 19:59:44

geht doch noch nicht:

Code: Alles auswählen

	cat << EOF
################################################################################
# Partitioning...
# PARTITIONTABLE WILL BE DELETED!! USE CAUTION
# Select the device you want to create a partion on by number:
################################################################################
EOF
#	fdisk -l
	select device in $DEVICES; do
	echo $device
	break;done
	echo "wiping partitiontable of $device"
	dd if=/dev/zero bs=1 count=66 seek=466 of=$device


EXTENDEDP='n
e
1
1


w
'
BOOTPSIZE='0'
echo bootpsize?
read BOOTPSIZE
echo $BOOTPSIZE
BOOTP='n
l

+${BOOTPSIZE}M
w
'


# set default for sizes if wanted
echo "$EXTENDEDP" | fdisk $device
echo $BOOTP
echo "$BOOTP" | fdisk $device
das +${BOOTPSIZE}M wird nicht ersetzt?! hilf' :cry:

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

Re: EOF für Variable nutzen

Beitrag von GoKi » 27.09.2009 20:04:32

" statt '

Code: Alles auswählen

...
BOOTP="n
l

+${BOOTPSIZE}M
w
"
...
MfG GoKi
:wq

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

Re: EOF für Variable nutzen

Beitrag von latenite » 27.09.2009 20:07:05

"" statt '' ok ich geh mal joggen den Kopf frei bekommen ...dann mach ich weiter...is ja "peinlich"
danke

Antworten