Вы не можете повторно использовать вывод команды, которая не была захвачена явным образом (каналы и т. д. ), если только вы -не выполните команду и не захватите вывод самостоятельно.
Bash не сохраняет вывод команды ни в каких переменных, в отличие от того, как он хранит коды выхода команд и историю команд. Ваш терминал имеет вывод, и bash также не беспокоится о сохранении копии для себя.
Так что, если вы хотите полностью избежать подстановки команд, я приду к выводу, что отсюда вы туда не попадете.
Если на самом деле возникает вопрос: «Как я могу легко получить вывод, который я вижу в строке выше в терминале, и вставить его в командную строку как команду без большого количества ввода?» вы можете решить это несколькими способами.
readline
, чтобы упростить редактирование команды. Например, ваш ответ на прекрасное предложение @choroba в другом месте заключается в том, что редактирование последней команды требует слишком большого объема ввода. Горячие клавиши строки чтения CTRL -a и CTRL -e позволяют редактировать последнюю команду (, достигнутую с помощью CTRL -p вместо ВВЕРХ waaaay вправо )гораздо быстрее.
screen
или tmux
. Я предпочитаю tumx
. Копирование и вставка довольно безболезненны с помощью простого CTRL -aCTRL -[ для перехода в режим копирования и еще нескольких клавиш VI, и вы только что скопировали нужную строку прямо в следующая подсказка (с настройкой tmux
с CTRL -ведущей клавишей .Надеюсь, это предлагает некоторые другие точки зрения.
Проблема в вашем примере не в блокировке, а в ошибке разрешения. apt
пытается прочитать/записать файл (/var/lib/apt/lists/lock
), для которого у него нет разрешения на чтение/запись.
Посмотрите на chown
, владение файлом и что такое пользователь (в системе Unix ).
Между прочим, этот файл используется для блокировки (для предотвращения одновременного доступа двух apt
к базе данных apt ).