J'ai les commandes suivantes.
cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php
À partir de maintenant, je l'exécute un par un.
Existe-t-il un moyen de combiner ces commandes sur une seule ligne?
command-line
Giri
la source
la source
;
ou&&
exécuter plusieurs commandes sur une seule ligne" est bien meilleure, a fait plus de recherches et aurait probablement attiré un grand nombre de votes positifs.Réponses:
Oui, séparez avec un point-virgule comme ceci:
La plupart des lanugauges / shells utilisent le point-virgule pour signifier la fin d'une commande et pour recommencer tout en évaluant de gauche à droite.
Ou comme @RobieBasak le recommande, utilisez && au lieu de; pour se prémunir contre les accidents de codage.
la source
&&
place de;
. Cela garantit que les commandes suivantes ne sont exécutées que si les commandes précédentes n'ont pas échoué. Cela évite certaines conséquences gênantes. Par exemple:cd /somewhere_else; rm -Rf *
pourrait faire quelque chose de désastreux s'il/somewhere_else
n'existe pas ou si vous l'orthographiez mal;cd /somewhere_else && rm -Rf *
vous protège de cela.Cela illustre davantage:
UNE ; B - Exécutez A puis B, indépendamment du succès ou de l'échec de A
A && B - Exécuter B uniquement si A a réussi
A || B - Exécuter B uniquement si A a échoué
source: https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/
la source