2017-07-11 1 views
-1

Je veux écrire un script bash pour lancer un processus avec des arguments. Comme l'exemple suivant: dans le terminal je lancerais le processus et il me demandera de choisir un nombre. dans le terminal, il serait:Linux bash script avec des arguments?

[email protected]:~$ process -someflag -someflag 
Hello ! Choose an option 
1.blabla 
2.do that 
3.do the other 

>> 

Maintenant, je veux lancer le processus avec déjà l'option sélectionnée dans mais je ne pouvais pas réussir.

Je peux écrire ce script:

#!/bin/bash 
#script.sh 

process -someflag -someflag 

Si je lance ce script, il me fera parvenir au menu et me faire choisir un numéro. Je veux fournir ce numéro dans le script. Y a-t-il une possibilité?

+0

Il y a une possibilité. Avez-vous essayé de chercher quelque chose comme "passer des arguments à bash script"? –

+0

Peut-être https://stackoverflow.com/q/192249/2988730? –

+0

Non, cela ne répond pas à ma question car nous ne pouvons pas passer les arguments 1 ou 2 ou 3 au processus dont je parle avant de l'avoir lancé et le menu a été affiché ... –

Répondre

0

La première chose que vous devriez faire, est de chercher des drapeaux supplémentaires pour process pour le rendre non-interactif/le démarrer en mode batch.

Si cela n'est pas pris en charge. Vous pouvez diriger l'entrée vers process.

choice=2 
echo "$choice" | process -someflag -someflag 

Ou pour plusieurs questions:

# Quesions 1 
choice_1=3 

# Quesions 2 
choice_2=4 

(echo "$choice_1"; echo "$choice_2") | process -someflag -someflag 

Mais c'est quelque chose que vous devriez essayer d'éviter que l'interface est conçue pour les humains, il est très probablement pas stable. (L'ordre des questions/réponses peut changer)

+2

J'espère que cela ne vous dérange pas mon édition. C'était juste quelque chose qui m'a sauté aux yeux. –

+0

Merci, cela a fonctionné! –