W bashu możesz użyć !*
wszystkich argumentów z poprzedniego polecenia. Na przykład, jeśli zrobiłeś, cp /some/path /some/other/path
a następnie zrobiłeś mv !*
, drugie polecenie zostanie rozszerzone do mv /some/path /some/other/path
.
Czy istnieje coś takiego, aby uzyskać dostęp do konkretnego argumentu z polecenia zamiast wszystkich?
źródło
!:1
,!:2
. Po użyciu wersji z dwukropkami działało.!1:1
oznaczałoby pierwszy argument pierwszego wiersza?Osobiście nie podoba mi się ta funkcja „rozszerzenia z wykrzyknikiem”, która będzie nawet przeszkadzać, jeśli spróbujesz
echo "Hello World!"
w interaktywnych powłokach (więc skrypty źródłowe, które zakładają, że będą uruchamiane w trybie nieinteraktywnym, w ogóle nie będą działać).Tak więc ustawiam
set +o histexpand
i zaczynam przywoływać argumenty za pomocą następującej metody:Zauważ, że Esc-trick jest taki, że nie mam meta-klucza.
źródło
echo 'Hello, orld!'
. Zwróć uwagę na pojedyncze cudzysłowy zamiast podwójnych.