Вы хотите, чтобы он работал без ввода дополнительной команды, например
$ rm file
Или только тогда, когда пользователь вводит что-то вроде
$ confirm rm file
Или только тогда, когда пользователь пытается для выполнения определенных команд, например
$ rm file
, но не для
$ echo "Hello"
Если параметр 1, это можно сделать, используя крюк preexec в zsh или ловушку DEBUG в bash ,
Если опция 2, добавьте что-то вроде этого в /etc/bash.bashrc или другой файл запуска оболочки.
confirm() {
echo -n "Do you want to run $*? [N/y] "
read -N 1 REPLY
echo
if test "$REPLY" = "y" -o "$REPLY" = "Y"; then
"$@"
else
echo "Cancelled by user"
fi
}
Если параметр 3, вы можете изменить сценарий confirm выше, или , некоторые команды имеют возможность спросить, прежде чем что-то делать, например [F8]. Вы можете поместить alias rm='rm -i' в /etc/bash.bashrc.