Fornece a senha para o script bash [closed]

0

Eu tenho um script bash, que criptografa arquivos diferentes.
Este script me pede para inserir uma senha para cada arquivo (para criptografar).

Existe uma maneira de fornecer as informações necessárias para o script como argumentos para o script, por isso não preciso inseri-las manualmente a cada vez para cada arquivo?

Eu tentei:

  • cat "input" | ./Script.sh
  • cat "input.txt" | ./Script.sh
  • echo "input" | ./Script.sh
  • printf 'word1\nword2\nword3\n' | ./script

EDITAR: resolveu com a resposta de Volker Siegel:

  1. Instalar espera: sudo apt-get install expect
  2. Executar a previsão automática: autoexpect -f file-to-save-automation script-to-automate
  3. Executar arquivo genrated: ./file-to-save-automation
por d vg 09.11.2018 / 20:36

2 respostas

1

Você precisa do programa expect . O que você precisa fazer é o principal uso dele.
Você usa autoexpect para gerar uma gravação usando seu programa.

A gravação é um script em (tcl) que pode executar seu script, incluindo a inserção da senha.

Se não funcionar perfeitamente, você pode editar o script gerado. A langue não é mais amplamente usada, mas é bem simples. Veja exemplos de código para o que você precisa.

Você deve encontrar facilmente exemplos de uso para o seu caso.

    
por 10.11.2018 / 08:36
-1

Sim, os argumentos podem ser referenciados com variáveis posicionais no seu script.

EG -

#!/bin/bash

if [ $# -ge 1 ]
then
  echo First argument is $1
fi

Chame com ./my_script argument1 ...

Então você tem $1 throu $9 para usar, adn se você precisa de mais de 9, você pode usar shift para, bem ... trocá-los.

Tudo isso, aceitar uma senha em uma linha de comando normalmente é ruim, já que ela pode ser vista no histórico do usuário, bem como na saída de ps , top , etc. Se fosse eu, Eu solicitaria ao usuário a senha como parte do script.

    
por 09.11.2018 / 20:48