Zielsetzung:
Weisen Sie nach dem Erweitern des Archivs a.zip
mit dem Befehl unzip
on Ubuntu 12.10
den Namen des Ordners a.zip
zu, auf den die bash
Variable erweitert wurde v
.
a.zip
Es wird davon ausgegangen, dass die Erweiterung auf einen einzelnen Ordner und nicht auf mehrere Ordner erfolgt.
Beispiel:
Wenn unzip a.zip
in Ordner erweitert ./foo/
, echo $v
sollte zurückkehren foo
.
Meine Umgebung:
GNU/Linux (kernel 3.5.0-25-generic)
Ubuntu 12.10
bash v4.2.37(1)-release
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.
Aktuelle Problemumgehung Ich bin unzufrieden mit: Erweitern über gibt unzip -d bar a.zip
dann v=$(ls -1 bar)
das richtige Ergebnis, bringt aber das Dateisystem durcheinander.
-m1
aufgrep
und ich wusste nicht ,cut
über bis zum Ende Druck-fN-
(letzte Feldnummer weggelassen). Du hast mir etwas beigebracht! Dafür -> upvote! Haben Sie nicht nur ein Tool verwendet (z. B.awk
), weil 1.grep
undcut
weiter verbreitet sind alsawk
und 2. Sie finden, was Sie geschrieben haben, "lesbarer"? Ich würde gerne Ihre Begründung hören, da man einen Einzeiler wie folgt zusammenstellen könnte : stackoverflow.com/questions/15776352 PS: Sie brauchen keine Anführungszeichen, keine Wortaufteilung in Bash zur variablen Zuweisungszeit.v=$(echo a b)
ist das gleiche wiev="$(echo a b)"