Existe um utilitário que sempre solicita confirmação ao usuário antes de executar um comando semelhante ao modo como sudo
solicita a senha?
bash
command-line
m33lky
fonte
fonte
cd
els
?Respostas:
Deseja que ele funcione sem digitar um comando extra, por exemplo
Ou apenas quando o usuário digita algo como
Ou apenas quando o usuário tenta executar certos comandos, por exemplo
mas não para
Se a opção 1, isso pode ser feito usando o gancho preexec no zsh ou a interceptação DEBUG no bash.
Se a opção 2, coloque algo assim
/etc/bash.bashrc
ou em outro arquivo de inicialização do shell.Se a opção 3, você pode modificar o
confirm
script acima, ou, alguns comandos têm uma opção para perguntar antes de fazer algo, por exemplorm -i
. Você poderia colocaralias rm='rm -i'
em/etc/bash.bashrc
.fonte
Eu brinquei um pouco com o bash e descobri um truque pelo qual isso poderia ser possível.
Você pode salvar esse script em, digamos,
confirm-any-command.sh
esource
no seubashrc
. Ele solicitará a confirmação de cada comando que você tentará executar.Observe que isso nada mais é do que um truque de prova de conceito; Duvido que possa realmente ser útil nesta forma. Se você precisar confirmar todos os comandos digitados, em breve adquirirá o hábito de pressionar automaticamente "yes" após cada comando. Seu mapeamento mental para "final de comando" vai mudar a partir de apenas Entera Enter, yes, Enter- você vai estar digitando-o como um todo, nem sequer tentando passar algum tempo na verificação de que você realmente quer este comando para executar. Isso é contraproducente e não o ajudará.
fonte
Allow? 1) yes 2) no #?
nenhumyes
nemno
trabalho causando loop infinito (Debian 8)help select
: você deve inserir1
ou2
melhor do queyes
ouno
. A nova tentativa automática para entradas inválidas é o comportamento pretendido (para que o escritor do script não precise se reinventarwhile
, mantendo a concisão e a clareza), e a entrada EOF finaliza o loop. Sabendo disso, você pode verificar se o script acima funciona. Não vou modificá-lo, pois é uma prova grosseira de conceito.y e s Enter
exemplo