Есть ли команда для копирования вышеуказанной строки в терминале? Это независимый от оболочки вопрос (например, bash, zsh и т.д.), В основном я использую pwd и хочу скопировать вывод, не вводя длинный каталог в моей следующей команде.

1 ответ1

2

Bash не сохраняет автоматически стандартный вывод или стандартный вывод предыдущей команды. Это главным образом не делает это из-за соображений производительности. Это может потенциально занять много ОЗУ, если вывод stdout очень велик, как это иногда бывает.

По этой же причине эмуляторы терминала, начиная от встроенного Linux VT до gnome-terminal , накладывают достаточно небольшое ограничение на количество буферов прокрутки (количество строк, которые вы можете прокрутить), прежде чем оно "обернется".

Занятие такого большого объема ОЗУ автоматически и без запроса пользователя значительно замедлит работу оболочки для многих сценариев и последовательностей команд, которые не требуют такого специфического поведения.

Вместо этого пользователь должен заранее знать, что он хочет сохранить стандартный вывод, и затем может ссылаться на него в своих последующих командах.

Два способа сделать это:

  • echo $(pwd) - встроенный
  • MYPWD=$(pwd); echo ${MYPWD} - отдельная переменная для захвата вывода и последующего обращения к нему

Кстати, вы можете проверить переменную среды PWD . Это может помочь вам использовать способ 2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .