Archiv verlassen und diese Seite im Standarddesign anzeigen : mein erstes skript.......funktioniert nicht
Ich hab ein Problem, mein erstes Skript unter Linux soll ein Verzeichniss erstellen in das ich meie Savings kopiere. Das Verzeichniss sollte das aktuelle Datum incl. der Zeit (mit Sekunden) anzeigen.
Und da hapert es.
Soweit bin ich gekommen:
---------------------------------------
mkdir -p /Savings/`date +%Y-%m-%d_%T`
cp /windows/D/Save/*
---------------------------------------
Nun weiß ich nicht wo ich die Dateien hin kopieren soll denn wenn ich wieder nach /Savings/`date +%Y-%m-%d_%T` existiert das Verzeichniss nicht da es später ist.
Ich hab mir überlegt das man das Verzeichniss einfach in eine Variable schreibt und die Dateien dann in die Variable kopiert oder mit der Ausgabeumleitung arbeitet. Oder das man einfach das Verzeichniss übergibt nur all diese Dinge kenn ich nur in der Theorie.
Könnt ihr mir da helfen und mir irgendeine Lösung aufzeigen.
Danke schon mal im voraus
Hallole,
ist doch ein guter Ansatz, das Verzeichnis in einer Variablen zu speichern ;)
#! /bin/sh
#
DATE=`date +%Y-%m-%d_%T`
mkdir -p /Savings/$DATE
cp /windows/D/Save/* /Savings/$DATE
Gruß micha
Ich wusste gar nicht das das so einfach ist.
Vielen Dank!!!
Nochmal so ne Frage die evtl. etwas lächerlich klingt, aber die Zeile
#! /bin/sh
muss die da sein?
Ich dachte das man mit # einen Kommentar einleitet demnach ist sie nicht zwingend notwendig oder???
Im weitesten Sinne ja, bis auf die erste Zeile, wenn direkt nach dem "#" ein Ausrufezeichen kommt. Dann ist das Nachfolgende nämlich der Pfad zu der Shell, die das Script auswerten soll. Steht nix da, ist die Standard-Shell normalerweise "/bin/sh", willst Du aber, das das Script von z.B der Bash ausgeführt wird, trägste die in die erste Zeile ein:
#! /bin/bash
Gib mal probeweise nen Pseudopfad in die erste Zeile ein:
#! /bin/bla
Wenn Du dieses Script aufrufst, bekommst Du ne Fehlermeldung "No such file or directory".
Gruß micha
Jetzt hab ich es mal ausprobiert und irgentwie läuft es nicht.
Ich hab es genau so abgetippt und ausgeführt dann kommt die Meldung:
./save: DATE: command not found
und dann kopiert er die Datei nach /Savings
Mach ich irgentwas falsch oder woran liegt das??
mhm, entweder hast Du die Hochkommas falsch geschrieben ( beachte die Richtung), deshalb
schreib mal die erste Zeile um in
DATE=$(date +%y-%m-%d_%T)
Ist ne andere Schreibweise, besser zu lesen wie die Backticks(`). Aber wahrscheinlicher ist, daß Du zwischen DATE, = und $(date....) Leerzeichen hast, die müssen weg !
Gruß micha
Erst mal Danke Danke Danke für deine Hilfe doch irgentwie ist der Wurm drin.
Jetzt bin ich sehr verwirrt
Ich hab die Leerzeilen weggemacht und nun kommt der fehler mit dem DATE nicht mehr nur...
ich hab das Programm in der Konsole mit "save" ausgeführt und jetzt kommt die Fehlermeldung:
bash: save: command not found
danach hab ich es probeweise unter dem KDE-Konquror ausprobiert und promt hat er das Verzeichniss erstellt und die Dateien dort hin kopiert
warum??
mightymike99
02-06-2001, 02:12
hi,
stell dein script mal hier rein!
Gruß
Tobias
Hallo,
also das Script sieht wie folgt aus:
-------------------------------------
#! /bin/sh
#
DATE=`date +%Y-%m-%d__%T`
mkdir -p /home/stony/test/$DATE
cp /hallo /home/stony/test/$DATE
-------------------------------------
der einfachheit halber und um es auszuprobieren hab ich es mit einer erstellten Datei "hallo" in ein extra für diesen Zwech angelegtes Verzeichniss versucht.
Wie schon gesagt unter dem KDE Konquor kann ich auf die Datei (namens "save") klicken und das Verzeichniss wird erstellt und die Datei wird kopiert. Unter der Shell klappt es nicht.
Ach und dann hät ich dazu noch ne Frage, da ist jetzt noch ne Datei die heißt "save~" wenn ich sie lösche ist sie nach kurzer Zeit wieder da. Warum??
Das Phänomen ist mir auch schon bei anderen Dateien aufgefallen die ich editiert habe. Als ich mich an z.B. der "lilo.conf" versucht habe war dann da eine "lilo.conf~".
Gruß Andreas
mightymike99
04-06-2001, 03:37
Zu deiner 2. Frage :Die Dateien mit der Tilde"~"
Das sind mit Sicherheit Backups von deinem Editor
Zu deinem Shellscript:
Sollte das in der ersten Zeile zwischen #! und /bin/sh ein Leerzeichen sein ist das auf jeden Fall schon mal ein Fehler.
Desweiteren wuerde ich die %-Angaben bei date in "Doppelhochkomma" einschliessen.
genauso wie den Pfad /home/stony/test/$DATE
also:
<code>
#!/bin/sh
DATE=`date +"%Y-%m-%d__%T"`
mkdir -p "/home/stony/test/$DATE"
cp /hallo "/home/stony/test/$DATE"
</code>
Gruß
Tobias
Ein trauriges Hallo,
es geht immer noch nicht.
Ich hab das Leerzeichen weggemacht und die die anführungszeichen so gesetzt wie beschrieben doch das Problem ist das selbe unter der Shell: nichts
unter KDE:gehts
Wenigstens etwas, aber nun noch ne Frage zu den Dateien mit der Tilde. Die stören inzwischen gewaltig. Als Standard Editor benutze ich normalerweise joe, giebt es Editoren die dieses Backup nicht anlegen bzw. kann man es vom System her abstellen???
Ach und da wäre noch was, wenn ich irgentwann einmal ein ShellSkript zum laufen bekäme in welche Datei und an welche stelle der Datei kann ich es einfügen damit es beim Systemstart ausgeführt wird (unter suse7.1 steht in einigen Dateien das man sie nicht editieren soll).
Danke schon im Voraus
Andreas
oh man, hätte irgendjemand schon viel früher merken müssen:
das script ist nicht im suchpfad, um es zu starten musst du es mit pfadangabe aufrufen als z.b. "./save" oder alternativ mit der shell "sh save" (das macht kde)
mightymike99
07-06-2001, 21:47
Hi,
am Besten dein Script wegschmeißen. Noch mal die big-fat <a href="http://www.linuxforen.de/faq/index.php3?sid=780432215&aktion=anzeigen&rubrik=1&id=1">Shellscript-FAQ</a> durchlesen, evtl. noch mal ein paar Minütchen Shell-script einführung auf www.linuxfibel.de (http://www.linuxfibel.de,) dann läuft das bestimmt.
Gruß
Tobias
[ 07. Juni 2001: Beitrag editiert von: mightymike99 ]
ich glaube doch
vergleich mal farells posting vom 31.5. 1:47 und vom 2.6. 0:37
mightymike99
07-06-2001, 22:26
...das kann auch das Leerzeichen sein das im nächsten Posting zu sehen ist.
Wie auch immer, das ist ein Problem das keins ist, und sich durch einlesen sehr schnell beheben laesst, oder vielleicht ist ja irgendwo einer den man mal schnell danebenstellen kann...
Gruß
Tobias
Du kannst an den Anfang deines Scripts
set -x
setzen. Dann wird dir genau angezeigt, was das Ding der Reihe nach tut.
thorsten
Hallo,
also es läuft und das freut mich sehr.
Das das so ein Problem für mich darstellte das Ding zum laufen zu bringen zeigt wohl allzugut das ich noch ein richtiger Anfänger bin (und noch sehr sehr viel lehrnen muss).
Umso mehr freud es mich das ihr mir helfen konntet (speziell über die Links über Shell Skripte bin ich froh).
An dieser Stelle noch mal ein kräftiges Danke an alle die mir geholfen haben.
Grüße
Andreas
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.