Warum bricht dieses Linux-Shellscript ab?

Im Unterforum Hardware, Betriebssysteme, Programmiersprachen - Beschreibung: Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  00:46:19      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Hardware, Betriebssysteme, Programmiersprachen        Hardware, Betriebssysteme, Programmiersprachen : Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.


Autor
Warum bricht dieses Linux-Shellscript ab?

    







BID = 818244

Racingsascha

Schreibmaschine



Beiträge: 2247
Wohnort: Gundelsheim
ICQ Status  
 

  



Offtopic :
Auf die Gefahr hin, dass das nicht erwünscht ist, aber ich schilder trotzdem mal die Situation:

Ich bin dabei meine Xbox (die erste) aufzubeißen um darauf Linux zu installieren. Dazu benutze ich xboxhdm (1.9) und Ndure (3.0). Das ist nicht das Problem, mein Problem ist folgendes:

Ndure erzeugt ein Shellscript, was durch eines kleinen live-Linux (erzeugt mit xboxhdm) auf einem Computer ausgeführt wird, um die entsprechenden Dateien auf der Festplatte der Xbox anzulegen etc. Davor soll man mithilfe des gleichen Scripts die Originalinhalte der Partition C: auf E: kopieren, sodass man ein "Backup" hat, indem man in dem Menü was am Anfang erzeugt wird, die Option 4 wählt.
Leider bricht dieses Shellscript dann mit der Meldung ala Line 252: unexpected "done" ab, was wohl die letzte Zeile ist. Einfach rauslöschen wär offensichtlich, aber warscheinlich zu einfach. Kann mir ein Linux-User einen Tipp geben?




Code :

#!/bin/sh

#
# Softmod Installer For XboxHDM.
#
cd
tmpdir="/ndure"
echo="echo -e"
clear
/usr/bin/find-cd2 check
CDDEV="`df | grep CD | cut -c 1-8`"
if [ "$CDDEV" = "" ]; then
$echo "\nLinux CD not found! Insert it and try again...\n"
exit 1
fi
PMASTER=`fdisk -l | grep Disk | grep hda`
PMASTER=`detectpm | grep Model | cut -d ':' -f 2`
PMLOCK=`detectpm | grep 'Security locked' | cut -d ':' -f 2`
#
clear
if [ "$PMASTER" = "" ]; then
$echo "No xbox hard drive found on /dev/hda (primary master)"
$echo "This script assumes /dev/hda be the device to be used"
$echo "Please shut down you PC - connect your Xbox drive to the"
$echo "primary master and try again!\n\n"
exit 1
else
$echo "Found Harddrive on primary Master"
fi
$echo "We will now search /dev/hda for an xbox partition table...\n"
sleep 2
PART=TRUE
for nn in 50 51 52 53 54; do
if [ "`ls /dev/hda* | grep $nn`" = "" ]; then
PART=FALSE
fi
done
if [ "$PART" = "FALSE" ]; then
$echo "No xbox-partition table found on /dev/hda"
if [ "$PMLOCK" = "Yes" ]; then
$echo "Drive Primary Master is locked !"
fi
exit 1
else
$echo "Xbox-partition table found on /dev/hda"
fi
if [ -f /CD/ndure/checkid ]; then
$echo "\nFound sofmod package on CDROM...\n"
else
$echo "\nDid not find softmod installer package on CDROM..."
$echo "To install softmod with this tool you must DL"
$echo "and burn the sminstaller folder to the xboxhdm CD"
exit 1
fi
###### this part is experiment #####
mkdir -p $tmpdir
mkdir -p /xbox
mkdir -p /xbox/hack
mkdir -p /xbox/C
mkdir -p /xbox/E
##/bin/mount -o loop /CD/sminstaller/softmod /xbox/hack/
###########
printheader() {
clear
$echo "=================================================="
$echo " NDURE INSTALLER FOR XBOXHDM"
$echo "=================================================="
}
printheader
$echo " You have the following options :\n\n"
$echo " [1] Install Ndure [Install only ndure files]\n"
$echo " [2] Install Ndure [Replace C drive with Ndure]\n"
$echo " [3] Install UDDAE\n"
$echo " [4] Backup C:\\n"
$echo " [5] Restore C:\\n"
$echo " Make your choice [1-5] : \c"
read cmd
if [ $cmd -eq 1 ]; then
#
# Installs Ndure pc generated setup
#
clear
printheader
$echo " Installing Ndure"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/C/media
mkdir -p /xbox/C/bios
mkdir -p /xbox/C/shadowc
mkdir -p /xbox/E/ndts
mkdir -p /xbox/E/dash
mkdir -p /xbox/E/apps

sleep 2
$echo " Part 2 of 3"
cp -R /CD/ndure/C/xodash/*.xbe /xbox/C/xodash/
cp /CD/ndure/C/xodash/ernie.xtf /xbox/C/xodash/
cp /CD/ndure/C/xodash/xbox.xtf /xbox/C/xodash/
cp -R /CD/ndure/C/media/* /xbox/C/media/
cp -R /CD/ndure/C/bios/* /xbox/C/bios/
cp -R /CD/ndure/C/*.xbe /xbox/C/
cp -R /CD/ndure/E/dash/* /xbox/E/dash/
if [ -f /CD/ndure/E/ndts/default.xbe ]; then
cp -R /CD/ndure/E/ndts/* /xbox/E/ndts/
fi
if [ -f /xbox/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
rm /xbox/C/xboxdashdata.185ead00/settings_adoc.xip
fi
if [ -f /CD/ndure/E/boo1.bin ]; then
cp /CD/ndure/E/boot1.bin /xbox/E/
fi
if [ -f /CD/ndure/C/xboxdashdata.17cdc100/default.xip ]; then
mkdir -p /xbox/C/xboxdashdata.17cdc100
cp -R /CD/ndure/C/xboxdashdata.17cdc100/* /xbox/C/xboxdashdata.17cdc100/
fi
if [ -f /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip /xbox/C/xboxdashdata.185ead00/
fi
rm -rf /xbox/C/*.xtf
#if [ -f /xbox/C/XBox Book.xtf ]; then
#rm /xbox/C/XBox Book.xtf
#fi
if [ -f /CD/ndure/C/shadowc/shadowc.img ]; then
cp -R /CD/ndure/C/shadowc/* /xbox/C/shadowc/
fi
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
#
if [ $cmd -eq 2 ]; then
#
# Installs Ndure C replace
#
clear
printheader
$echo " Installing Ndure"
$echo " This will completely remove contents of C:\"
$echo " And replace them with contents of ndure/C/"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/E/dash
sleep 2
$echo " Part 2 of 3"
rm -rf /xbox/C/*
sleep 2
cp -R /CD/ndure/C/* /xbox/C/
cp -R /CD/ndure/E/* /xbox/E/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
#
if [ $cmd -eq 4 ]; then
#
# Create C backup
#
clear
printheader
$echo " Creating backup of C:\"
$echo " Please wait"
$echo " Part 1 of 2"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir /xbox/E/backup
sleep 2
$echo " Part 2 of 3"
cp -R /xbox/C/* /xbox/E/backup/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
####
if [ $cmd -eq 5 ]; then
#
# Restore C backup
#
clear
printheader
$echo " Restoring C:\ drive backup"
$echo " This option is only for if you"
$echo " Created backup before"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
sleep 2
$echo " Part 2 of 3"
if [ -f /xbox/E/backup/xboxdash.xbe ]; then
rm -rf /xbox/C/*
cp -R /xbox/E/backup/* /xbox/C/
else
$echo "\nDid not find backup"
exit 1
fi
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "Done.. now exiting"
exit 1
fi
#####
if [ $cmd -eq 3 ]; then

## Install uddae

clear
printheader
$echo " This will install uddae"
$echo " setup generated by ndure"
$echo " pc installer"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/C/xboxdashdata.17cdc100
sleep 2
$echo " Part 2 of 3"
if [ -f /CD/ndure/C/xboxdashdata.17cdc100/default.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.17cdc100/* /xbox/C/xboxdashdata.17cdc100/
else
$echo "\nDid not find uddae files"
exit 1
fi
if [ -f /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip /xbox/C/xboxdashdata.185ead00/
else
$echo "\nDid not find settings_adoc.xip"
exit 1
fi
cp -R /CD/ndure/E/TDATA/fffe0000/music/ST.DB /xbox/E/TDATA/fffe0000/music/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "Done.. now exiting"
exit 1
fi
done



_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.

[ Diese Nachricht wurde geändert von: Racingsascha am  1 Mär 2012 21:56 ]

BID = 818246

clembra

Inventar



Beiträge: 5404
Wohnort: Weeze / Niederrhein
ICQ Status  

 

  

Zu dem done gibt es auch kein for oder ähnliches. Hast du das Skript von aus einer englischen Seite rauskopiert? Falls ja gehört das done vermutlich nicht mehr zum Skript.

Anbei das gleiche Skript etwas sinnvoller eingerückt. Da sieht man sofort, dass das "done" überflüssig ist. Bei vernünftigem Syntax Highlighting (gvim ) wird das auch schön rot hervorgehoben.


_________________
Reboot oder be root, das ist hier die Frage.

BID = 818253

Racingsascha

Schreibmaschine



Beiträge: 2247
Wohnort: Gundelsheim
ICQ Status  

Nein, das ist direkt der Inhalt der Datei, die Ndure am Ende ausspuckt und man mit auf die live-CD brennt.

Das Done hätt' ich eher als das Ende des Scripts vermutet, nicht als endfor oder so.

_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.

[ Diese Nachricht wurde geändert von: Racingsascha am  1 Mär 2012 22:55 ]

BID = 818262

clembra

Inventar



Beiträge: 5404
Wohnort: Weeze / Niederrhein
ICQ Status  

Nein, das gibt es nicht. Das Skriptende entspricht dem Dateiende. Alternativ oder explizit kann man "exit" verwenden, bei Bedarf mit Exitcode, wie es mit "exit 1" mehrfach im Skript genutzt wird.
done ist unter bash jedenfalls das Ende einer (for)-Schleife.

Vielleicht sollte da statt der manuellen Auswahl mal ein "for cmd in 1 2 3; do" stehen

_________________
Reboot oder be root, das ist hier die Frage.

BID = 818482

Racingsascha

Schreibmaschine



Beiträge: 2247
Wohnort: Gundelsheim
ICQ Status  

Es hat funktioniert

Allerdings nicht mit diesem Script.Auf instructables.com gab es ein nahezu identisches Howto, Hier konnte man sich ein funktionierendes Ndure-Script runterladen. Danach lief alles wie beschrieben. Jetzt leuchtet der Leuchtring orange und ich schreibe diesen Post mit X-DSL Allerdings erstmal als Live-CD, Denn eigentlich wollte ich Xubuntu oder Xebian, aber die finde ich nur auf einer dubiosen Isoseite die einen clickjacken will.

Trotzdem Danke für deine Hilfe


Der Screenshot stammt aus meinem PC, der das Bild der Xbox per TV-Karte anzeigt. Screenshotfunktionalität hab ich in X-DSL nicht gefunden.Wäre dann aber auch nicht authentisch
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.

[ Diese Nachricht wurde geändert von: Racingsascha am  3 Mär 2012 13:15 ]


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182392893   Heute : 86    Gestern : 7548    Online : 523        25.11.2024    0:46
4 Besucher in den letzten 60 Sekunden        alle 15.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0551040172577