Автоматически записывать вывод последней команды в переменную с помощью Bash?

Поскольку PEP-8 говорит нам использовать пробелы.

135
задан jww 19 June 2019 в 16:16
поделиться

1 ответ

Я нахожу то, чтобы не забывать передать вывод по каналу моих команд в определенный файл для раздражения, моим решением является функция в моем .bash_profile, который ловит вывод в файле и возвращает результат, когда Вам нужен он.

преимущество с этим состоит в том, что Вы не должны повторно выполнять целую команду (при использовании find или другие продолжительные команды, которые могут быть очень важными)

Достаточно простой, вставьте это в Вашем .bash_profile:

Использование Сценария

# catch stdin, pipe it to stdout and save to a file
catch () { cat - | tee /tmp/catch.out}
# print whatever output was saved to a file
res () { cat /tmp/catch.out }

$ find . -name 'filename' | catch
/path/to/filename

$ res
/path/to/filename

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

кроме того, если Вы хотите открыть вывод файла в текстовом редакторе, можно сделать это:

# vim or whatever your favorite text editor is
$ vim <(res)
0
ответ дан 23 November 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: