#!/bin/sh
NOW=$(date +"%Y-%m-%d")
FILE="$NOW_XBMC_margro_32bit.dmg"
echo $FILE
Kann mir mal einer erklären, warum das so nicht funktioniert? Kommt nur .dmg dabei raus. Ist wohl nochn bissl früh.
#!/bin/sh
NOW=$(date +"%Y-%m-%d")
FILE="$NOW_XBMC_margro_32bit.dmg"
echo $FILE
Kann mir mal einer erklären, warum das so nicht funktioniert? Kommt nur .dmg dabei raus. Ist wohl nochn bissl früh.
Funktioniert. Das Skript hatte ich aber so gefunden: http://www.cyberciti.biz/faq/l…atting-dates-for-display/
Funktioniert. Das Skript hatte ich aber so gefunden: http://www.cyberciti.biz/faq/l…atting-dates-for-display/
Das ist aber nicht genau so, da ist ein . hinter der Variable und kein _
Sachen gibts...danke für die schnelle Hilfe!
Moin!
Der Grund ist, dass ein Unterstrich ein erlaubtes Zeichen eines Variablennamens ist und ein Punkt nicht.
Deshalb hat dein Script versucht, die Variable "NOW_XBMC_margro_32bit" zu expandieren, und die ist leer.
Lars.
Wieder was gelernt!
Noch ne kurze Zwischenfrage. Wie kann ich denn mittels Bash eine Datei kopieren, die eine Tilde im Dateinamen hat? Irgendwie scheint das nicht zu klappen. Komischerweise gehts aber auf der Kommandozeile.
Ausgabe vom Skript
mv: rename /Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2/org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb to ~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb: No such file or directory
Wenn ich "cp /Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2/org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb ~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-atv2_12.0-0~alpha5_iphoneos-arm.deb" direkt ausführe, gehts.
Indem Du den Dateinamen in Hochkommas "einpackst"
Indem Du den Dateinamen in Hochkommas "einpackst"
Nur den Dateinamen oder inklusive Pfad?
Mal mit Hochkommata probiert?
So siehts jetzt aus
NOW=$(date +"%Y-%m-%d")
DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2
cd $DIR
FILE=$(ls org.*)
mv "$DIR/${FILE}" "~/Desktop/XBMC/${NOW}_${FILE}"
mv "'$DIR/${FILE}'" "'~/Desktop/XBMC/${NOW}_${FILE}'" geht nicht
mv '$DIR/${FILE}' '~/Desktop/XBMC/${NOW}_${FILE}' geht nicht
Edit, so gehts:
NOW=$(date +"%Y-%m-%d")
DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-atv2
cd $DIR
FILE=$(ls org.*)
mv "$DIR/${FILE}" "/Users/xxx/Desktop/XBMC/${NOW}_${FILE}"
Das komische ist, in einem anderen Skript verwende ich die Tilde auch für den Home-Ordner.
Setze doch mal " set -x " an den Anfang des Scripts und poste dann die Ausgabe.
Der setzt das irgendwie automatisch in Hochkommas, was dann nicht funktioniert:
+ cd /Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios
++ ls org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb
+ FILE=org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb
+ mv /Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios/org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb '~/Desktop/XBMC/2012-08-20_org.xbmc.xbmc-ios_12.0-0~alpha5_iphoneos-arm.deb'
Skript dazu:
NOW=$(date +"%Y-%m-%d")
DIR=/Users/xxx/xbmc/tools/darwin/packaging/xbmc-ios
cd $DIR
./mkdeb-xbmc-ios.sh Release
cd $DIR
FILE=$(ls org.*)
mv "$DIR/${FILE}" "~/Desktop/XBMC/${NOW}_${FILE}"
Ja nu, mit kompletter Angabe des Pfades gehts. Damit kann ich auch leben. Verstehen würd ichs nur gern
OK, lass ich die Anführungszeichen ganz weg, funktionierts auch.
Ich verwede die " meistens nur bei den Variaben und lasse sie dann im script selber weg.
Damit kann ich auch leben. Verstehen würd ichs nur gern
Das ist recht einfach erklaert. Packst Du die ~ in Hochkommas, dann ists ne Tilde, falls nicht wird es durch das Homeverzeichnis ersetzt.
Das ist recht einfach erklaert. Packst Du die ~ in Hochkommas, dann ists ne Tilde, falls nicht wird es durch das Homeverzeichnis ersetzt.
Sowas dacht ich mir schon, nachdems dann lief.
Ich verwede die " meistens nur bei den Variaben und lasse sie dann im script selber weg.
Ergebnis ist dann, dass man eines der typischen Scripte baut, das dann mit Leerzeichen in Verzeichnisnamen oder Dateinamen Probleme hat. Das müsste nicht sein, wenn Entwickler konsequent alle Parameter an Befehle (in deinem Fall "mv") quoten würden.
Das Ironische an der Geschichte: Soweit ich weiß muss man die Variablenzuweisung nichtmal quoten, da, soweit mir bekannt, die Variablenzuweisung eine der wenigen Anweisungen ist, die auch ohne Quoting kein Problem mit Leerzeichen hat.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!