Я часто запускаю команды, используя подоболочки, и иногда мне хотелось бы расширить подоболочки, прежде чем я что-то запустил ... Таким образом, я мог проверить, что я делаю, и, возможно, отредактировать то, что должно произойти.
Например, как я могу развернуть следующую командную строку перед ее запуском, чтобы я мог редактировать результаты подоболочки?
например
$ find -name "test.txt"
/tmp/test.txt
$ mv $(!!) /tmp/new.txt
Я бы хотел увидеть расширение оболочки до запуска команды, например:
$ mv /tmp/test.txt /tmp/new.txt
Есть ли способ сделать это?
bash
shell
command-history
subshell
Брэд Паркс
источник
источник
zsh
и это здорово, и делает это, как вы предлагаете ... хороший совет! Я оставлю оригинальный ответ здесь, так как это былbash
вопрос.Ответы:
shell-expand-line
(\e\C-e
) расширяет подстановки команд в bash.$(!!)\e\C-e
снова запустит предыдущую команду и вставит вывод:Это также расширяет другие подстановки команд, но нет такой команды, как
shell-expand-word
.В bash 4.0 или более поздней версии вы также можете включить
globstar
, ввести**/file.txt
и использоватьglob-complete-word
(\eg
) илиglob-expand-word
(\C-x*
).источник
Вот полезный трюк - добавьте эту строку в ~ / .inputrc (создавая файл при необходимости):
Обратите внимание, что вы также можете использовать одно из следующих действий, чтобы расширить только историю, или ваши псевдонимы, или оба:
или
или
Это было взято из этого блога , и этот вопрос о SuperUser , который очень похож:
источник