J'ai environ 20 commandes et je dois envoyer tout cela à Unix Shell et copier le résultat, mais je ne sais pas comment le faire.
Je ne suis pas sûr de ce que j'ai Shell, car c'est un petit programme connecté à Mobile Network Managment, et avec ce petit programme nous avons accès pour envoyer des commandes par ligne et recevoir les résultats par cri, pour cette raison je ne peux pas utiliser de scripts pour l'envoi des commandements.
Commande 1 - Connectez-vous avec un serveur.
Attendez la fin de la commande 1
Command 2 - Mettre à jour toutes les informations du serveur 1 terminer
Attendre.
Commande. Obtenez un paramètre.
... et plus de ces commandes.
I essayé avec cmd1 | cmd2 | cmd3
etcmd1 & cmd2 & cmd3
et cmd1;cmd2
Le problème est avec cmd1
il est connecté à un RNC (élément de réseau) et prend environ 15 secondes, après cela cmd2
a du sens. mais juste travailler pour le premier cmd. Un indice, comment gérer cela?
Habituellement juste cmd1;cmd2;cmd3;cmd4
(si vous vouliez l'écrire sur une seule ligne), ou en utilisant cmd1 && cmd2 && cmd3 && cmd4
si vous ne voulez pas exécuter cmd3 lorsque cmd2 échoue.
Alternativement à ;
vous pouvez simplement écrire une commande par ligne.
cmd1
cmd2
cmd3
cmd4
Si vous souhaitez que les commandes s'exécutent en parallèle en arrière-plan, vous pouvez également utiliser
cmd1 &
cmd2 &
cmd3 &
cmd4 &
wait # for cmd1-4 to finish
L'une ou l'autre de ces méthodes peut également être placée dans un script Shell. Il y a peu de différence entre ce que vous écrivez dans un script Shell et ce que vous écrivez dans le shell lui-même.
Vous voudrez peut-être examiner sleep
, si votre environnement le permet. La séquence complète serait alors quelque chose comme cmd1 && sleep 10s && cmd2
.
Voici la page de manuel appropriée pour le sommeil .
Utilisez simplement un script, un fichier contenant les commandes à exécuter les unes après les autres, comme:
#!/bin/sh
command-01
command-02
...
command-20
La première ligne (Shebang) indique d'exécuter les commandes suivantes à l'aide de /bin/sh
, De rendre le fichier exécutable (chmod u+x your-little-script
), Puis de l'exécuter par ./my-little-script
. De cette façon, vous ne laisserez pas une étape ;-)
Lisez le manuel du Shell, il fournit un langage de programmation complet. Consultez bash(1)
si c'est ce qui est disponible, ou bien le Korn Shell ksh(1)
. Ils offrent de nombreuses fonctionnalités utiles pour contrôler le flux de contrôle dans les scripts (ou interactivement, d'ailleurs).