Использование списка аргументов в bash и zsh в интерактивном режиме
Как то был совет "Вставка последнего аргумента предыдущей команды в bash и zsh." который показывает как более эффективно работать в командной строке.
Но он не поможет если вам нужен не один аргумент, а несколько. В этом совете представлен пример работы когда многим командам нужно указывать как параметр имена нескольких файлов.
Для этого используется механизм передачи параметров, который позволяет ссылаться на параметры с помощью переменно $@.
Задача: создать два скрипта, дать им права и добавить их в cvs репозиторий.
ramok@~/ set bin/{wk,kw} # после этой строчки в $@ будет "bin/wk bin/kw" # в $1 = "bin/wk", $2 = "bin/wk" ramok@~/ vi $@ # аналог vi bin/wk bin/kw ramok@~/ chmod +x $@ # аналог chmod +x bin/wk bin/kw ramok@~/ cvs add $@ # аналог cvs add bin/wk bin/kw cvs add bin/wk bin/kw cvs add: scheduling file `bin/wk' for addition cvs add: scheduling file `bin/kw' for addition cvs add: use `cvs commit' to add these files permanently ramok@~/ cvs commit -m "add win<->koi scripts" $@ /home/ramok/cvsroot/ramok/bin/wk,v <-- bin/wk initial revision: 1.1 /home/ramok/cvsroot/ramok/bin/kw,v <-- bin/kw initial revision: 1.1 ramok@~/ $1 #запускаем bin/wk
- Добавить комментарий
- 4109 просмотров


а не проще ли ввести:
Тоже работает как в баше так и в зшелле. Кстати можно и выборочно штучно брать любой аргументи из предыдушей команды !:1 -первый !:2 -второй и так далее
в данном конкретном случае может быть и так
но если перечилять множество файлов, то способ что в совете удобнее
но этот коментарий достоин отдельного совета Ж:-)
И оно работает просто в терминале (не из скрипта)? Шок!!!:-o
Спасибо, коллега, теперь кучу времени сэкономлю :-)