Aller au contenu

[Script] bash et ecriture

Featured Replies

Posté(e)

Voila, j'ai une question peut etre tres bete, mais je n'ai pas réussi à trouver sur google de réponse à ma question ... c'est peut etre parce que c'est compliqué à définir ...

Alors voilà :

J'ai un script bash, qui contient un certain nombre de commandes 'read' pour fixer des paramètres.

Et j'aimerais depuis un second script bash, pouvoir renseigner les réponses à ces questions, sachant que je ne peux pas modifier mon premier script !

__________________________________________________________________________

En fait, j'aimerais pouvoir créer un certificat SSL à l'aide de la commande apache2-ssl-certificate, or celui ci pose des questions apparement via la commande 'read'. Il faudrait donc que je trouve un moyen de renseigner ces réponses via le script d'automatisation que je cherche à réaliser.

Si vous avez des idées, n'hésitez surtout pas !

Posté(e)

read.sh :

#!/bin/sh

read A

echo "A = $A"

read B

echo "B = $B"

% { echo "a1"; echo "b1" } | ./read.sh
A = a1
B = b1

(et évidemment ça marche aussi depuis un script qui fait la même chose)

Posté(e)
  • Auteur

Erf, ca ne marche pas pour ce que je souhaite en faire ... d'ailleur j'ai testé rapidement ton exemple, et le fonctionnement est un peu bancal ... :p

Quand j'essaie de le faire fonctionner avec la commande :

% { echo "FR"; echo "France" } | apache2-ssl-certificate --force

pour répondre aux deux premières questions en l'occurence, il me sort :

Country Name (2 letter code) [FR]:string is too long, it needs to be less than 2 bytes long

Country Name (2 letter code) [FR]:problems making Certificate Request

Il me semblait y avoir une solution à base de redirections avec la commande 'cat' mais impossible de retrouver le lien .... :mdr:

Posté(e)

Avec sh ou bash il faut mettre des parenthèses à la place des accolades.

Mais sinon tu met dans un seul fichier shell, avec les lignes les unes au dessous des autres.

Posté(e)
  • Auteur

Avec sh ou bash il faut mettre des parenthèses à la place des accolades.

Mais sinon tu met dans un seul fichier shell, avec les lignes les unes au dessous des autres.

en effet, je viens de trouver !

( echo FR; echo France ) | apache2-ssl-certificate --force

et la ca passe ;)

Merci bien pour ton aide ! ;)

Posté(e)
  • Auteur

je désire intégrer cette commande à un script.

Voilà donc la tête de la commande :

(echo $COUNTRY; echo $STATE; echo $LOCALITY; echo $ORGANIZATION_NAME; echo $ORGANIZATIONAL_UNIT_NAME; echo $SERVER_NAME; echo $EMAIL) | apache2-ssl-certificate

le soucis, c'est que je dois l'éxécuter via un chroot ...

et la, ca ne passe pas, il ne comprends pas les parenthèses car il cherche à exécuter directement la commande ... :s

Une idée ?

Posté(e)

C'est la 2ème commande que tu veux lancer avec sudo, donc il n'y a pas de problème :

(echo $COUNTRY; echo $STATE; echo $LOCALITY; echo $ORGANIZATION_NAME; echo $ORGANIZATIONAL_UNIT_NAME; echo $SERVER_NAME; echo $EMAIL) | sudo apache2-ssl-certificate

(d'ailleurs pour une meilleure visilibilité (dans un script), il y a moyen de mettre les commandes comme ça :

(
 echo a
 echo b
) | cat

Posté(e)
Ou echo "a

b

c

...

"

Oui, sauf que c'est aussi valable pour d'autres commandes que echo et que c'est bien pratique de temps en temps :transpi:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.