Существует ли утилита, которая всегда запрашивает у пользователя подтверждение перед выполнением команды, аналогичной той, которая sudo
запрашивает пароль?
bash
command-line
m33lky
источник
источник
cd
иls
?Ответы:
Вы хотите, чтобы это работало без ввода дополнительной команды, например
Или только когда пользователь вводит что-то вроде
Или только когда пользователь пытается выполнить определенные команды, например
но не для
Если выбрана опция 1, это можно сделать с помощью перехвата preexec в zsh или ловушки DEBUG в bash.
Если вариант 2, поместите что-то подобное в
/etc/bash.bashrc
другой файл запуска оболочки.Если выбрана опция 3, вы можете изменить приведенный
confirm
выше скрипт, или у некоторых команд есть опция запроса, прежде чем что-то делать, напримерrm -i
. Вы можете поместитьalias rm='rm -i'
в/etc/bash.bashrc
.источник
Я немного поиграл с bash и понял, как это можно сделать.
Вы можете сохранить этот скрипт, скажем,
confirm-any-command.sh
иsource
в своемbashrc
. Он запросит подтверждение каждой команды, которую вы попытаетесь выполнить.Пожалуйста, обратите внимание, что это не что иное, как проверка концепции; Я сомневаюсь, что это действительно может быть полезным в этой форме. Если вам придется подтверждать каждую введенную вами команду, вы очень скоро приобретете привычку автоматически нажимать «да» после каждой команды. Ваше психическое отображение для «конца команды» будет меняться от только Enterк Enter, yes, Enter- вы будете вводить его в целом, даже не пытаясь потратить некоторое время на проверке того, что вы действительно хотите эту команду для выполнения. Это контрпродуктивно и вам не поможет.
источник
Allow? 1) yes 2) no #?
ни ,yes
ниno
работа не вызывает бесконечный цикл (Debian 8)help select
: вы должны ввести1
или2
вместоyes
илиno
. Автоматическая повторная попытка для недопустимых вводов - это предполагаемое поведение (чтобы создателю сценария не приходилось заново изобретатьwhile
себя, сохраняя краткость и ясность), а ввод EOF завершает цикл. Зная это, вы можете сами убедиться, что приведенный выше скрипт работает. Я не буду изменять его, так как в любом случае это грубое доказательство концепции.y e s Enter
примером