Форум — General bash - вставить результат последней команды? bash, горячие клавиши 1 1 например# find / -name nginx.conf/etc/nginx/nginx.conf# vim (Хоткей, который вставит строку /etc/nginx/nginx.conf?) Ссылка
Ответ на: комментарий от anonymous 15.08.16 15:02:22 MSK Блин, вру. Но можно сохранять результат в переменную. result = $(command) anonymous (15.08.16 15:04:44 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 15.08.16 15:02:22 MSK Похоже на альяс Alt+. - вставляет последний параметр # find / -name nginx.conf /etc/nginx/nginx.conf # echo $_ nginx.conf не то Rodriges (15.08.16 15:08:45 MSK) автор топика Ссылка
Ответ на: комментарий от anonymous 15.08.16 15:04:44 MSK Это если заведомо знать о положительном результате! Было бы очень удобно, если работало как я описал в начале топика. Rodriges (15.08.16 15:09:57 MSK) автор топика Ссылка
Результат последней команды нигде не хранится. То есть в ортодоксальных шеллах нужно сделать что-то типа:result=$(find / -name nginx.conf) vim "$result" А вот в xonsh вроде бы можно хранить в истории и stdout. anonymous (15.08.16 15:11:58 MSK) Ссылка
Ответ на: комментарий от Exmor_RS 15.08.16 15:09:09 MSK Сначала попробуй :)) anonymous (15.08.16 15:13:30 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 15.08.16 15:13:30 MSK Искать в корне вообще не очень идейка. Exmor_RS ★★★ (15.08.16 15:19:56 MSK) Ссылка
# find / -name nginx.conf/etc/nginx/nginx.conf# vim $(!!) dexpl ★★★★★ (15.08.16 15:20:39 MSK) Показать ответы Ссылка
Ответ на: комментарий от dexpl 15.08.16 15:20:39 MSK # vim $(!!)Красивый хак.Надеюсь, ТС разберётся что именно это делает... Kroz ★★★★★ (15.08.16 15:28:01 MSK) Показать ответ Ссылка
Ответ на: комментарий от dexpl 15.08.16 15:20:39 MSK Неплохо кстати false ★★★★★ (15.08.16 16:26:25 MSK) Ссылка
Ответ на: комментарий от Kroz 15.08.16 15:28:01 MSK !! - алиас, копирующий и выполняющий предыдущюю команду, т.е. не подходит.По идее, можно написать wrapper типа #!/usr/bin/env bash # wrapper export LAST_CMD=$($@) echo $LAST_CMD И вызывать его source wrapper echo test, в переменную LAST_CMD сохранится выхлоп последней команды.Но я не знаю, как адаптировать под него .bashrc. ns139275 (15.08.16 19:43:46 MSK) Показать ответ Ссылка
Ответ на: комментарий от ns139275 15.08.16 19:43:46 MSK А что тут адаптировать. Напиши alias функцию, назови ее как-то вроде '_' или 'a' и вызывай через неё команды.Правда, думаю, будет много подводных камней. Например, код возврата, вывод в stderr местов stdout и т. п. Kroz ★★★★★ (15.08.16 19:51:35 MSK) Показать ответ Ссылка
Ответ на: комментарий от Kroz 15.08.16 19:51:35 MSK Для того, чтобы функція всегда вызывалась по-дефолту, нужно править PS1? ns139275 (15.08.16 19:54:35 MSK) Показать ответ Ссылка
Ответ на: комментарий от ns139275 15.08.16 19:54:35 MSK Для того, чтобы функція всегда вызывалась по-дефолту, нужно править PS1?PS1 не имеет к этому никакого отношения.Смотреть нужно скорее в сторону bash hooks; вот первая ссылка, которую выдает google: http://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-befor... Kroz ★★★★★ (15.08.16 20:07:24 MSK) Показать ответ Ссылка
Ответ на: комментарий от dexpl 15.08.16 15:20:39 MSK vim $(!!)Здесь, кстати, уместно вспомнить об устаревшем синтаксисе:$ vim `!!` — вводится порядочно быстрее. Zmicier ★★★★★ (15.08.16 23:23:11 MSK) Ссылка
Плюсую вариант с $(!!).Обмазываться башем начал бы с такого. $ O=${TMPDIR:-/tmp}/$$-laststdout # это в ~/.bashrc $ find / -name nginx.conf | tee $O /etc/network/interfaces $ vim $(<$O) unterwulf ★ (16.08.16 00:44:43 MSK) Ссылка
А чем не устраивает в vim'e команда :r? :r !find / -name nginx.conf anonymous (16.08.16 02:09:51 MSK) Ссылка
Ответ на: комментарий от Kroz 15.08.16 20:07:24 MSK Смотреть нужно скорее в сторону bash hooks; вот первая ссылка, которую выдает google: http://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-befor...В bash нет нормальных хуков, лол. trap на DEBUG это костыльный костыль. Вот в zsh всё есть. anonymous (16.08.16 04:46:43 MSK) Ссылка