Редактировать: Из руководства:
Скрипт помещает все в файл журнала, включая перевод строки и возвраты. Это не то, что ожидает наивный пользователь.
Это означает, что это можно сделать в простейших случаях, отыскивая вхождения $PS1
в выходных данных и выполняя строку после него, но вскоре это может стать невозможным:
- Вы не можете видеть разницу между буквальным символом и символом escape, например
^C
- Любые фоновые задания могут вставлять текст в любое время, портя вывод.
while true; do sleep $RANDOM; echo garbage; done &
- Если он записывает стандартную ошибку, возникает проблема с асинхронным выводом.
Если это вообще вариант, я бы предпочел использовать /var /log /cmdlog и посмотреть, есть ли весь текст, созданный командами, записанными там, где-нибудь в файле script
.