Есть ли способ манипулировать вводом терминала до его выполнения? Пример:
apt-get update
введено в терминал. Теперь я хочу изменить его на sudo apt-get update
до его выполнения.
Что я пробовал:
Я думал о возможности выполнить сценарий, который затем будет выполнять введенную команду с управляемым вводом, но я не нашел способа запустить этот сценарий, пока должна выполняться другая программа.
Я ценю каждый ответ. Я использую Linux Mint Serena.
Пояснение:
Каждый раз, когда вызывается команда, должен быть скрипт или что-то еще, работающее в фоновом режиме, и проверять, соответствует ли он шаблону. Если нет, выполните ввод, а если да, то манипулируйте этой командой и выполните -> Вот почему мой пример с apt-get update
до sudo apt-get update
. Единственное, что я могу понять, это то, как этот сценарий получит эту команду до того, как она будет выполнена.
Возможные цели:
При попытке доступа к определенному файлу / каталогу запрос пароля
Создание ярлыков ( cd _1
будет изменен на cd ~ / Desktop
)
Э-э, что-то совершенно новое для меня ():прочитать ответ по использованию PS4:как перехватывать каждую команду
Если только что проверили:
bash: PS4='$(echo $(date) $(history 1) >> /tmp/trace.txt) TRACE: '
bash: set -x
bash: date
TRACE: date
Fr 28. Jul 14:13:24 CEST 2017
Как описано в ответе выше, PS4 ... оценивается для каждой выполняемой команды... . Таким образом, если вы замените это, чтобы передать любую из ваших команд через вашу оболочку и подтвердить ее выполнение, таким образом вы сможете перехватить любую из ваших команд.