Как выполнить выходную строку без замены команды bash?

Как выполнить выходную строку без замены команды bash?

Например, если я tshark терминал tshark и программа еще не установлена, я получу сообщение об ошибке, например:

 _some text_ sudo apt-get install tshark 

Теперь я хочу выполнить эту последнюю строку без копирования и вставки или транскрипции.

Если я попробую

 $ tshark 2> >(tail -1) sudo apt-get install tshark 

Я получу последнюю строку, которую хочу выполнить.

И если я хочу выполнить эту строку, то, конечно, подстановка команды bash работает и устанавливает все правильно:

 $ $(tshark 2> >(tail -1)) 

Но если я не использую подстановку команд bash и не связываю это с xargs как

 $ tshark 2> >(tail -1) | xargs sudo apt-get install tshark 

Мне интересно, почему трубопровод для xargs, кажется, не имеет никакого эффекта.

Но если я попробую

 $ tshark 2> >(tail -1) | xargs xargs 

sudo подскажет мне правильный пароль, а не apt-get abbort после Y / N для установки или нет.

Тот же результат возникает, если я подключаюсь к bash .

Любой ответ или подсказка приветствуются.

  • Xargs во вторую сторону трубы?
  • Когда требуется xargs?
  • Почему xargs вырезает цитаты из ввода?
  • Почему «find / -name» * .txt '| cp / junk "не работает?
  • Как создать бесконечный поток строк в bash
  • Синтаксис командной строки для перенаправления аргументов?
  • Как я могу предотвратить использование аргументов аргументов `xargs` в префиксах пробелами?
  • Найти файл, проверить размер и перезаписать, когда размер файла отличается
  • 2 Solutions collect form web for “Как выполнить выходную строку без замены команды bash?”

    Ответ

    Вы не можете повторно использовать вывод команды, которая не была явно записана (трубы и т. Д.), Если вы не выполните повторную команду и не зафиксируете результат самостоятельно.

    Bash не сохраняет вывод команд в любых переменных, в отличие от того, как он хранит коды выхода команд и историю команд. У вашего терминала есть выход, и bash не беспокоится о сохранении копии для себя.

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

    Опции

    Если реальный вопрос: «Как я могу легко получить вывод, который я вижу в строке выше в терминале, и пощелкать его в командной строке в виде команды без большого набора текста?» вы можете решить это несколькими способами.

    1. Используйте быстрые клавиши readline чтобы сделать команду более безболезненной.

    Например, ваш ответ на тонкое предложение @ choroba в другом месте заключается в том, что для редактирования последней команды слишком много ввода. Ярлыки readline CTRL-a и CTRL-e могут сделать редактирование последней команды (достигнутой с CTRL-p вместо UP waaaay справа) намного быстрее.

    1. Используйте терминальный мультиплексор, такой как screen или tmux . Я предпочитаю tumx . Копирование и вставка довольно безболезненны с помощью простого CTRL- CTRL- [ для перехода в режим копирования и еще нескольких клавиш VI, и вы просто скопировали строку, которую хотите прямо в следующее приглашение (с настройкой tmux с помощью CTRL- лидера ключ.

    Надеюсь, это предложит некоторые другие перспективы.

    xargs выполняет команду, xargs в аргументах, считанных со стандартного ввода. Если команда не указана, она использует echo .

    С xargs xargs первые xargs считывают команды и запускают

     xargs sudo apt-get install tshark 

    но нет больше stdin, поэтому больше аргументов не добавляется. Но, поскольку нет никакого stdin, нет также ответов на интерактивные вопросы – они читают от stdin, который связан с трубой, теперь исчерпан. Вы можете попробовать запустить apt-get с помощью --yes . (Запрос пароля работает, поскольку пароли не считываются из stdin по соображениям безопасности).

    Interesting Posts

    Создайте глобальную переменную окружения после загрузки

    Как отключить альфа меню приложения?

    Почему rm исключает использование! не работает в zsh?

    Не удается подключиться к Интернету. Работает Debian, работает pinging DNS-адрес

    Где файл журнала бродяг?

    Как отключить заставку и управление питанием в Linux по командной строке?

    Самый дешевый способ найти самый старый файл (рекурсивно) из каталога с большой нагрузкой

    Как вы скрываете пароль при вызове во время команды su?

    Как я могу выйти из vi, используя сценарий оболочки?

    Добавление www в URL: не работает

    OpenBSD X, только мышь прокрутки вниз

    Почему это временно выглядит так, что предел передачи команды pv больше не применяется, когда я выхожу из приостановки в ram?

    Хотите найти две строки подряд с не менее n символами

    i3 включение numlock

    X Windows специальные программы: некоторые из них все еще существуют?

    Linux и Unix - лучшая ОС в мире.