Je pourrais (1) préparer un fichier avec des commandes tapées séparées par une ligne de fin, (2) le rendre exécutable, (3) l'exécuter à partir d'un gestionnaire de système de fichiers ou du terminal.
Mais c'est ridicule pour les ensembles de commandes non répétables et à chaque fois.
Puis-je saisir ces commandes sur le terminal dans une seule demande?
Je ne connais pas le caractère de fin de ligne pour le terminal - Ctrl, Maj ou Alt avec Entrée ne fonctionne pas.
Réponses:
Vous pouvez séparer les commandes avec
&&
ou;
.&&
n'exécute la commande suivante que si la précédente s'est terminée avec le statut 0 (a réussi):;
exécute toutes les commandes, même si la précédente se termine avec un état non nul:Vous pouvez combiner ces séparateurs à votre guise.
la source
command1 && command2
command2 ne sera exécutée que si command1 a réussi.sudo apt upgrade
etsudo systemctl reboot
, auriez-vous besoin d'ajouter "sudo" deux fois, ou "se souviendra-t-il" de sudo pour la deuxième commande?Si vous êtes intéressé à 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 c'est vrai, faites-le) et appuyez sur Enter; votre invite changera maintenant>
et rien ne sera exécuté.Tapez vos commandes, chacune suivie de Enter
Terminez votre demande avec avec
fi
(fin de laif
condition ci-dessus ) et appuyez sur Enter. Maintenant, toutes vos commandes seront exécutées dans l'ordre donné.Exemple:
la source
if true; then
peut être plus clair à lire si vous le souhaitez.:
peut être confondu avec le;
premier coup d'œil.Tout d'abord, mettez un
{
sur sa propre ligne.Ensuite, insérez vos commandes.
Ensuite, mettez a
}
sur une nouvelle ligne et appuyez sur Enter. Vos commandes seront exécutées.Exemple:
qui imprimera (tout à la fois, sans invite entre les deux):
En remarque,
{ .. }
est la syntaxe de regroupement des commandes Bash. Il est souvent utile en conjonction avec&&
ou||
('et', et 'ou' respectivement)la source
if :; then
déjà mentionnée? Ou est-ce légèrement différent?if :
exécute un test sur la commande null, qui retournera toujours true.{ .. }
regroupe simplement les commandes. Personnellement, je trouve{ .. }
plus facile à retenir.