Ermitteln des Verzeichnisnamens für den übergeordneten Namen, indem die Ergebnisse von dirname an basename in einem Bash-Skript übergeben werden

7

Bei einem Pfad wie diesem test / 90_2a5 / Windows

Ich versuche, das Ergebnis 90_2a5 mit den Befehlen dirname zu erhalten, um den Pfad zu erhalten und nach basename , um den Namen zu erhalten.

Das Problem tritt auf, wenn ich versuche, es in einer einzigen Zeile zu machen, indem ich versuche, die Ergebnisse von dirname nach basename zu leiten.

Ich habe das versucht, aber scheint, dass ich es falsch benutze.

%Vor%

Das Problem ist, dass finalName eine leere Zeichenfolge ist, was bedeutet, dass die Ergebnisse von dirname nicht umgeleitet werden.

    
stratis 31.05.2013, 10:25
quelle

4 Antworten

16

Sie leiten sie nicht weiter, sondern übergeben sie als Parameter:

%Vor%

Einige Befehle akzeptieren keine Eingabe-Streams, sondern nur Parameter:

%Vor%     
l0b0 31.05.2013, 10:49
quelle
7
%Vor%     
Rafael 14.07.2014 06:51
quelle
1

Tatsächlich können Sie es auch ohne ein externes Programm wie dirname oder basename machen, indem Sie einfach die Bash-String-Manipulation verwenden:

%Vor%     
Uwe 31.05.2013 11:37
quelle
0

Verwenden Sie $ {path # * /}, um die Zeichen bis zum ersten '/' abzuziehen. Dann benutze dirname, um "/ Windows" zu entfernen.

%Vor%     
suspectus 31.05.2013 10:41
quelle

Tags und Links