• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

(Gelöst)Touch Frage

Kilkenny

Newbie
Tut mir Leid Leute das ich hier solche Neulingsfragen stelle, ich lerne Linux gerade und ich hoffe das es bald besser wird :)

ok also ich versuche jetzt schon einen halben Tag einen Datei mit Touch anzulegen die
„Heute ist Dienstag der 21 August 1972 (17 Uhr 21)“ heißt. Wie lässt sich das realisieren ?

Also am prompt funktioniert es so > date +"%A, der %d %B %Y (%H Uhr %M)"
ich versteh also die shift oberstrich, oberstrich und doppelter oberstrich Zusammensetzung nicht :(

wäre nett wenn mit da wer erklärend zur Seite stehen könnte

grüße
 
A

Anonymous

Gast
Die Probleme kommen dadurch, weil hier die Shell das Ganze nicht nur einmal interpretiert sondern mehrfacht, und dabei gibt es dann die Probleme mit den Leerzeichen.

Code:
date +"heute ist %A, der %d %B %Y (%H Uhr %M)"
Das gibt dir ersteinmal den String als Ausgabe.
Normalerweise reicht jetzt entweder
Code:
touch `date +"%......."`
touch $(date +"%.......")
nur hier ist es eben so , das in der Ausgabe von date Leerzeichen enthalten sind, die dann von der Bash als Trennzeichen für die Optionen für touch genommen wird, und damit würden hier mehrere Dateien angelegt. Jeweils aus den einzelnen Bestandteilen der Ausgabe von date so wie die Leerzeichen dazwischen stehen. Genau das willst du aber nicht. Du musst also wiederum diese Leerzeichen von der Shell schützen. ZB ganz einfach so hier
Code:
touch "$(date +"%.........")"
und genau das sollte das gewünschter Ergebnis bringen.

Es gibt noch mehrere Methoden wie man die Leerzeichen hier vor der Bash verstecken könnte, aber das ist wohl die übersichtlichste, Die Hochkommas kommen sich hier nicht in Gehege, da sie durch die Klammer in verschiedenen Ebenen Interpretiert werden. Innerhalb der Klammer bei Befehl date und außerhalb der Klammer beim Befehl touch

robi
 
Oben