script hängt nach cp -a (mit Lösung)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
bongout
Beiträge: 217
Registriert: 15.08.2003 13:02:23
Kontaktdaten:

script hängt nach cp -a (mit Lösung)

Beitrag von bongout » 18.05.2006 09:27:15

Hi Folks,

ganz dummes Frage:

Code: Alles auswählen

#
#!/bin/sh
#
# Exit if anything goes wrong
set -ex

mkdir /mnt/$1

# basic parameters
VG="00"
IMG_PATH="/dev/00/"
MNT="/mnt/$1"

# Create Logocal Volumes for Domain and Swap
lvcreate -v -L$2 -n $1 $VG
lvcreate -v -L$3 -n $1'_swap' $VG

# make Filesystem
mkfs.ext3 $IMG_PATH$1
mkswap $IMG_PATH$1'_swap'

mount $IMG_PATH$1 $MNT
cp -a /mnt/template/* $MNT

/bin/sh /ext/images/scripts/10_hostname $1
startet munter, erstellt LV's und kopiert auch brav - aber nach dem letzten kopierten File passiert nix mehr :-( (zurück zum prompt)

Warum?

Benutzeravatar
bongout
Beiträge: 217
Registriert: 15.08.2003 13:02:23
Kontaktdaten:

Beitrag von bongout » 18.05.2006 10:20:27

hmm... schwer war es ja nicht ...

&& hilft

Code: Alles auswählen

cp -a /mnt/template/* $MNT &&

/bin/sh /ext/images/scripts/10_hostname $1 
aber ich versteh' ehrlich gesagt nicht, warum es nicht auch ohne geht.

Kann mir da jemand helfen?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 18.05.2006 10:26:24

prinzipiell solltest du $VARS immer in "" setzen.. wenn du mal ein Verzeichnis mit einem Leerzeichen hast (/mnt/mein tolles verzeichnis) dann kriegt er bei schöne Probleme... bei

Code: Alles auswählen

"$MNT"
jedoch nicht.. ob das bei dir das Problem ist, kann ich jetzt so beim schnellen Überfliegen nicht sagen.. ein "bash -x /script.sh" könnte Infos bringen
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 18.05.2006 14:53:31

Hat zwar nichts mit dem Problem zu tun, aber die "#!" Zeile muss die erste Zeile sein! (Die Datei muss mit #! beginnen)

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 18.05.2006 16:07:26

Hi,
Joghurt hat geschrieben:Hat zwar nichts mit dem Problem zu tun, aber die "#!" Zeile muss die erste Zeile sein! (Die Datei muss mit #! beginnen)
nicht zwangslaeufig, wenn man die "Magic Line", "she-bang", ... Notation nutzt, kann man angeben wer das Script ausführen soll. Macht man's nicht, wird versucht es mit einem Fork der aktuellen Shell zu starten, was bei Linuxern vielfach die Bash ist.
Da die Bash "mehr kann" als die sh, geht's so herrum, fuehrt man allerdings ein Script das Bash Funktionen nutz unter der sh aus, geht's in die Hose.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 18.05.2006 17:53:32

Eben. Entweder man macht es, oder man macht es nicht. Es falsch zu machen ist vollkommen sinnlos.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 18.05.2006 19:46:21

Hi,

etwas falsch zu machen halte auch in fuer sinnlos :wink:
Aber unter der Annahme, das bongout eine Bash als Standard Shell hat, sollte es mich doch sehr wundern wenn's daran liegen wuerde.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten