web-dev-qa-db-fra.com

Comment exécuter plusieurs commandes les unes après les autres avec une requête au terminal (sans utiliser de fichier)?

Je pourrais (1) préparer un fichier avec des commandes typées séparées par ligne de fond, (2) le rendre exécutable, (3) l'exécuter à partir d'un gestionnaire de système de fichiers ou du terminal.

Mais ceci est ridicule pour des ensembles de commandes non répétables et répétitives.

Puis-je taper ces commandes au terminal en une seule requête?

Je ne connais pas le caractère de fin de ligne du terminal - Ctrl, Maj ou Alt avec Entrée ne fonctionne pas.

21
Esamo

Vous pouvez séparer les commandes avec && ou ;.

  • && n'exécute la commande suivante que si la précédente est sortie avec le statut 0 (a réussi):

    command1 && command2 && command3
    
  • ; lance toutes les commandes, même si la précédente a un statut différent de zéro:

    command1; command2; command3
    

Vous pouvez combiner ces séparateurs à votre guise.

23
MrVaykadji

Si vous souhaitez taper chaque commande sur sa propre ligne dans une seule demande, vous pouvez utiliser la méthode suivante:

  • Commencez votre demande (première ligne) par if :; then (cela signifie: si vrai, alors faites) et appuyez sur Enter; votre invite changera maintenant dans > et rien ne sera exécuté.

  • Tapez vos commandes, chacune suivie de Enter

  • Terminez votre demande avec avec fi(fin de la condition ifci-dessus) et appuyez sur Enter. Maintenant, toutes vos commandes seront exécutées dans l'ordre donné.

Exemple:

radu@Radu: ~ $ if :; then> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $
9
Radu Rădeanu

Commencez par mettre un { sur sa propre ligne.
Ensuite, insérez vos commandes.
Ensuite, mettez un } sur une nouvelle ligne et appuyez sur Enter. Vos commandes seront exécutées.

Exemple:

{
echo list
echo of
echo commands
echo to run at once
}

qui imprimera (tout à la fois, sans invite entre):

list
of
commands
to run at once

Remarque: { .. } est la syntaxe de regroupement des commandes Bash. C'est souvent utile avec && ou || ('et', et 'ou' respectivement)

4
kiri