2011-01-17 9 views
3


habe ich hier den Code:die Newline nach Shell-Befehl entfernen

#/bin/sh 

cd ~/Desktop/tmp 
date "+%m%d%y_%H%M%S_" | xargs -0 mkdir; 

Dies ein Verzeichnis mit dem aktuellen Datum zu schaffen.
Das Problem hier ist, dass der date Befehl ein Datum mit einem Newline-Zeichen am Ende zurückgibt.
Nach mkdir enthält der erstellte Ordner einen Zeilenumbruch.
Jeder weiß, wie man das macht? Ich brauche einen Ordnernamen ohne das Newline-Zeichen.
Danke.

Antwort

6

Warum müssen Sie es an xargs übergeben? Sie nicht die unnötige tun

mkdir $(date "+%m%d%y_%H%M%S_") 
2

Der Grund, dass die Neue-Zeile enthalten war, ist, dass Sie die -0 Option verwendet, die xargs verwenden Null-Byte (ASCII 000) als Wortgrenze macht. Newlines sind dann als Teil der Wörter enthalten. Durch das Löschen von -0 werden xargs Leerzeichen (einschließlich Zeilenumbrüche) als Begrenzung verwendet, wodurch sie abgeschnitten werden.

Verwenden Sie jedoch Ghostdog74 Lösung, es ist einfacher.