In bash können Sie !*
alle Argumente aus dem vorherigen Befehl abrufen. Wenn Sie dies zum Beispiel getan haben cp /some/path /some/other/path
und dann getan haben mv !*
, wird der zweite Befehl auf erweitert mv /some/path /some/other/path
.
Gibt es so etwas, das verwendet werden kann, um von einem Befehl aus auf ein bestimmtes Argument zuzugreifen, anstatt auf alle?
quelle
!:1
,!:2
. Nachdem die Version mit den Doppelpunkten verwendet wurde, funktionierte es.!1:1
auf das erste Argument der ersten Zeile hindeuten würde?Persönlich mag ich diese „Erweiterung mit Ausrufezeichen“ -Funktion nicht besonders, die selbst dann stört, wenn Sie
echo "Hello World!"
interaktive Shells ausprobieren (so dass die Beschaffung von Skripten, die davon ausgehen, dass sie im nicht interaktiven Modus ausgeführt werden, überhaupt nicht funktioniert).Also setze ich
set +o histexpand
Argumente und rufe sie mit der folgenden Methode auf:Beachten Sie, dass der Esc-Trick darin besteht, dass ich keinen Metaschlüssel habe.
quelle
echo 'Hello, orld!'
. Beachten Sie die einfachen Anführungszeichen anstelle der doppelten.