Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
-
pinguino
- Beiträge: 147
- Registriert: 23.01.2007 23:11:46
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
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
-
pinguino
- Beiträge: 147
- Registriert: 23.01.2007 23:11:46
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
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
-
pinguino
- Beiträge: 147
- Registriert: 23.01.2007 23:11:46
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
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
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'
-
GoKi
- Beiträge: 2068
- Registriert: 04.07.2003 23:08:56
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von GoKi » 27.09.2009 20:04:32
MfG GoKi
:wq
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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