Bash Script to While Loop lors de la lecture de Stdin

Bash Script to While Loop lors de la lecture de Stdin
Le concept «flux» dans un ordinateur s'applique à quelque chose qui pourrait déplacer des données. Toute instruction que vous exécutez dans le terminal serait à n'importe quelle position du flux. Ces positions peuvent être une origine ou une sortie. Prenons un aperçu rapide du flux STDIN spécifique. Dans Linux, STDIN fait référence à l'entrée par défaut ou standard. L'entrée dont il a besoin doit être un texte. Pour acquérir des données ou des informations de votre part, c'est le gestionnaire de fichiers que la lecture de votre procédure. Presque tous les flux sont visualisés dans Linux comme s'ils étaient des répertoires. Nous pouvons lire / écrire des informations de tous ces flux, exactement comme vous pouvez lire / écrire un document. En utilisant un numéro de descripteur de fichiers spécial qui lui est lié fournit une excellente approche pour accéder à un document. Il y a eu des valeurs spéciales allouées à chacun d'entre elles tout au long de la situation de ces flux. Stdin a une valeur de 1.

Stdin: 1

Commençons par comprendre à travers la pratique sur le flux stdin en utilisant pendant que les boucles. Tout d'abord, nous aurons un exemple de base de la stdin comme lu. Exécuter l'instruction ci-dessous. L'instruction exigerait une entrée du clavier. En cela, via Stdin, l'outil de lecture obtient le texte.

$ lire

Exemple 01:

Créer un nouveau fichier, «Entrée.sh ”et ajoutez-y le script annexé. Nous avons utilisé la boucle while pour lire le texte par un utilisateur du terminal et l'imprimer. Le script est nommé avec un «/ dev / stdin» comme le tout premier paramètre à 1 $, dans lequel l'approche correspondante lit l'entrée régulière de la console. Enregistrez ce fichier et fermez-le.

Ouvrez le terminal et exécutez le fichier nouvellement mis à jour «Entrée.sh »comme:

Entrée de bases.shot

Lorsque vous exécutez le fichier à l'aide de la commande bash, vous serez sauté à la ligne suivante pour écrire quelque chose. Comme vous pouvez le voir ci-dessous, l'utilisateur a écrit un texte en une ligne et appuyez sur Entrée.

Le texte écrit par un utilisateur sera lu en premier et imprimé sur la ligne suivante comme ci-dessous.

Vous pouvez même fournir un espace entre votre entrée de texte comme ci-dessous.

Exemple 02:

Maintenant, nous allons lire le texte à partir du fichier. Mettez à jour le même fichier «Entrée.sh »en fournissant le nom de fichier« script.sh ”comme le tout premier paramètre à 1 $. L'approche correspondante se lit sur ce document.

Nous avons les informations texte suivantes dans le fichier «Script.sh ”comme ci-dessous. Vérifions comment cela fonctionne.

Exécuter le fichier «Entrée.sh »en utilisant la commande bash. Vous verrez que le flux de lecture se lit dans le fichier fourni "Script.sh ”et imprimez-le dans le terminal comme ci-dessous.

Entrée de bases.shot

Exemple 03:

Ayons un exemple pour lire chaque répertoire un par un en utilisant stdin. Vous devez considérer le paramètre -u avec la lecture. En cela, «-U 1» implique «Lire de Stdin."Dans ce code," Line "représente le nom de fichier, et l'incrément" I ++ "est utilisé pour passer au répertoire ou fichier suivant. Il comptera également le numéro de fichier qui a également été lu. Exécutons ce code pour vérifier ce qui se passe ensuite.

Exécuter le fichier bash «Entrée.sh ”. Cela vous invitera à entrer un texte pour passer au fichier suivant. Ici, «Comm» représente le nom du premier fichier.

Entrée de bases.shot

Tout en poursuivant cela, vous pouvez voir que nous avons une liste de fichiers que nous avons parcourus.

Exemple 04:

Dans cet exemple, nous avons deux fichiers connexes à lire. Attribuez les privilèges requis aux deux fichiers à l'aide de la commande «chmod» comme ci-dessous.

Nom de fichier Chmod U + x

Écrivez le code ci-dessous dans le fichier «Entrée.sh ”. Jusqu'à ce que la boucle «while» obtienne les lignes, elle imprimera ces lignes. Tandis que la «ligne» fait référence à un autre fichier «script.sh ”.

Nous avons le code ci-dessous dans le fichier «Script.sh ”. Pendant que la boucle fonctionne, elle imprime le numéro de ligne.

Exécuter les deux fichiers à l'aide de ""./ ”Au début du nom de fichier et à se séparer en utilisant« »|» dans la coquille. Vous verrez qu'il imprime les numéros de ligne tout en imprimant le texte à partir des fichiers également. C'est une méthode très simple pour corréler deux fichiers ou leur contenu.

$ ./scénario.sh | ./saisir.shot

Exemple 05:

Terminons ce sujet en ayant cet exemple simple et efficace. Nous avons un fichier «Script.sh ”avec le contenu ci-dessous ou les noms des personnes. Nous lisons ces noms un par un dans un autre fichier.

Mettez à jour le fichier «Entrée.SH: avec le script ci-dessous. Dans ce script, nous avons une boucle de temps pour élaborer le travail «stdin». Nous utilisons la lecture «read -r» en lisant un autre fichier comme autre que l'entrée standard. D'un autre côté, en utilisant «-u» comme spécifique au bash, la sortie standard de l'utilisateur dans le terminal. Ici, le «nom» est le texte ou le contenu du fichier «Script.sh ”. L'option «-p» est utilisée pour «lire». L'instruction de lecture lira le «nom» à partir d'un autre fichier et demandera si vous souhaitez le supprimer ou non. Le mot-clé «IP» est utilisé pour la réponse de l'utilisateur pour affirmer l'action de la suppression. Quelle que soit la réponse de l'utilisateur, elle l'imprimera. Dans l'instruction «IF», ​​il vérifiera si les entrées standard de l'utilisateur sont identiques que «Y», puis il imprimera un message comme mentionnant qu'il a supprimé le «nom». Ce processus sera réitéré jusqu'au dernier contenu du fichier «script.sh ”.

Jetons un coup d'œil à la sortie du code ci-dessus. Exécutez le fichier à l'aide de la commande bash. Le système vous demandera si vous souhaitez supprimer ce «nom» ou non. Entrez «Y» et appuyez sur «Entrez».

Entrée de bases.shot

Ici, en appuyant sur «Y», il imprimera «Y» et montrera un message qu'il a supprimé le «nom» particulier. Après cela, il passera à un autre «nom».

Il vous demandera de supprimer les noms jusqu'à ce que tous les noms ou contenu du fichier «script.sh ”ont été déposés comme ci-dessous.

Conclusion:

Nous avons magnifiquement traversé tous les exemples simples d'entrée standard tout en utilisant la boucle «while» dans le script bash.