Ferramenta que pode ser canalizada para solicitar um aviso de confirmação

1

Existe uma ferramenta * nix que pode ser canalizada para dentro de um prompt de confirmação antes de executar todos os comandos anteriores? Estou pensando em uma ferramenta que permita que você coloque trechos de linha de comando em uma página da Web, mas garanta que cortar e colar o comando e colar acidentalmente um CR / LF não causaria danos ao computador do alvo.

Aqui está um exemplo simples, assumindo que existe uma ferramenta chamada 'confirmar' e substituindo o desenvolvedor por 'safedev':

head -c 32 /dev/urandom | sudo openssl enc -rc4 -nosalt -pass stdin -in /dev/zero -out /dev/safedev | confirm

Esta questão vem da minha própria experiência de destruir meu mbr cortando e colando um comando de um navegador e ele inesperadamente pegou o CR / LF e começou a executar antes que eu tivesse a chance de mudar o sda para o sdc. Fui obrigado a recriar o mbr e reinstalar o Ubuntu Gnome sobre minhas partições existentes para recuperar / recriar meu sistema operacional principal.

Se essa ferramenta não existir, existe outra maneira de fornecer comandos em uma página da Web que possa forçar a confirmação antes de executar os comandos? Talvez algo assim?

confirm && head -c 32 /dev/urandom | sudo openssl enc -rc4 -nosalt -pass stdin -in /dev/zero -out /dev/safedev
    
por Dan 06.01.2017 / 20:56

3 respostas

3

Se você estiver colando texto copiado em um terminal com CRLFs incorporados, nenhum comando prefixado poderá salvá-lo (e, de fato, colocar um comando no fim de um pipeline estará fechando a porta após todo o vacas deixaram o celeiro). Alguns emuladores de terminal (por exemplo, iTerm2 no OSX) adicionaram recentemente detecção e interceptação de CRLF para atenuar esse tipo de problema.

Depois de ter resolvido o problema dos CRLFs embedder, você provavelmente pode fingir o que deseja com algo como:

/bin/false && ( your commands here )

Depois de verificar o que você quer é o que você tem, você pode remover o /bin/false && .

    
por 06.01.2017 / 21:11
1
$ getraw --delay=1 'vent warp core? [yn]' && vent_warp_core

getraw (e o docs e o testes também podem ser feitos com uma chamada read no código shell,

Isso também deve funcionar em um pipeline ou em um loop while se precisar ser um prompt por arquivo. Exemplo totalmente inventado:

find . -type f | ( getraw 'ready to cat?' && cat )
    
por 06.01.2017 / 21:09
0

Semelhante a resposta do DopeGhoti , mas menos "rocket-sciencey": basta digitar :

# ( your commands here )
    
por 07.01.2017 / 09:19

Tags