GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter une commande à l'aide d'arguments provenant d'un tableau ?

Supposons que j'ai un programme graphique nommé app . Exemple d'utilisation :app -t 'first tab' -t 'second tab' ouvre deux "onglets" dans ce programme.

La question est :comment puis-je exécuter la commande (c'est-à-dire app ) depuis un bash script si le nombre d'arguments peut varier ?

Considérez ceci :

#!/bin/bash
tabs=(
    'first tab'
    'second tab'
)

# Open the app (starting with some tabs).
app  # ... How to get `app -t 'first tab' -t 'second tab'`?

Je voudrais que le script ci-dessus ait un effet équivalent à app -t 'first tab' -t 'second tab' . Comment un tel script bash peut-il être écrit ?

Edit :notez que la question porte sur la composition d'arguments de ligne de commande à la volée à l'aide d'un tableau d'arguments.

Réponse acceptée :

Donner les arguments d'un tableau est facile, "${array[@]}" développe les entrées du tableau sous forme de mots distincts (arguments). Nous avons juste besoin d'ajouter le -t drapeaux. Pour ce faire, nous pouvons boucler sur le premier tableau et créer un autre tableau pour la liste complète des arguments, en ajoutant le -t drapeaux au fur et à mesure :

#!/bin/bash
tabs=("first tab" "second tab")
args=()
for t in "${tabs[@]}" ; do 
    args+=(-t "$t")
done
app "${args[@]}"

Utilisez "[email protected]" au lieu de "${tabs[@]}" pour prendre les arguments de ligne de commande du script au lieu d'une liste codée en dur.


Linux
  1. Utilisation de Stratis pour gérer le stockage Linux à partir de la ligne de commande

  2. Exécutez la commande sur plusieurs serveurs Linux à partir de Windows

  3. Utilisation de la commande passwd à partir d'un script shell

  4. Automatisation de la commande en cours d'exécution sur Linux à partir de Windows à l'aide de PuTTY

  5. Comment puis-je exécuter une fonction à partir d'un script en ligne de commande ?

Comment exécuter des commandes à partir d'une entrée standard à l'aide de Tee et Xargs sous Linux

Partager des fichiers sur Internet à partir de la ligne de commande à l'aide de Transfer.sh

Comment exécuter une commande périodiquement sous Linux à l'aide de Watch

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Googler - Exécutez des recherches Google à partir de la ligne de commande

Exécutez des processus d'arrière-plan sous Linux à l'aide de la commande Screen