[LINUX] Comprenons ensemble les entrées / sorties standard de bash et écrivons un script shell.

Oui, je pense que le titre est parfait sauf pour le mot correspondant. Oui. Les E / S standard sont très importantes pour les scripts shell, mais je ne parlerai pas de la notation des scripts shell ici (arnaque de titre).

Qu'est-ce qu'une entrée / sortie standard?

Vous connaissez peut-être ce mot, entrée / sortie standard. Sous Linux, lorsqu'une commande est exécutée, trois canaux d'entrée et de sortie sont automatiquement ouverts. Ce sont les trois ci-dessous.

Redirigeons

La fonction permettant de changer la destination d'entrée / sortie standard est appelée redirection **. Je pense que c'est une bonne idée de rediriger la destination de sortie standard vers un fichier.

Redirection d'entrée standard

Par exemple, si vous exécutez la commande cat sans argument, la ligne de commande attendra l'entrée du clavier. Donc, si vous entrez et redirigez un fichier approprié vers la commande cat sans argument, ce sera comme suit. À propos, le symbole ** <** est utilisé pour la redirection d'entrée.

qiita:~/qiita$ vim ore.txt
qiita:~/qiita$ cat < ./ore.txt
Je suis un génie. Personne n'a dit cela, et les résultats ne l'ont pas prouvé, mais je sais. Parce que je suis moi(Inconnue)
qiita:~/qiita$ 

C'est comme ça. Dans le cas de la commande cat, le même résultat peut être obtenu en spécifiant un fichier comme argument.

Redirection de sortie standard

Cette fois aussi, je vais montrer un exemple de redirection de sortie en utilisant la commande simple et facile cat.

qiita:~/qiita$ cat ./ore.txt > watashi.txt
qiita:~/qiita$ cat ./watashi.txt 
Je suis un génie. Personne n'a dit cela, et les résultats ne l'ont pas prouvé, mais je sais. Parce que je suis moi(Inconnue)
qiita@pumpkin:~/qiita$ 

Avec ʻore.txtcomme argument decat, watashi.txt est spécifié dans la redirection de sortie. Quand je le vérifie, le contenu de ʻore.txt est sorti vers watashi.txt.

À propos, le fichier de destination de la redirection de sortie sera écrasé s'il existe et sera généré automatiquement même s'il n'existe pas. Vous pouvez le changer en une note supplémentaire à la fin en utilisant deux symboles de redirection se chevauchant comme >> ←.

Erreur de sortie standard

À la toute fin, la sortie d'erreur standard est un canal différent de la sortie standard, donc même si vous changez la destination de sortie standard en un fichier, la sortie d'erreur sera affichée à l'écran.

qiita@pumpkin:~/qiita$ cat < nainai.txt > watashi.txt
bash: nainai.txt:Il n'y a pas de tel fichier ou répertoire
qiita@pumpkin:~/qiita$ 

Ici, utilisez le symbole «2>» pour la sortie d'erreur standard.

qiita@pumpkin:~/qiita$ cat ./nainai.txt 2> error.txt
qiita@pumpkin:~/qiita$ cat ./error.txt 
cat: ./nainai.txt:Il n'y a pas de tel fichier ou répertoire
qiita@pumpkin:~/qiita$ 

C'est comme ça. Le contenu de l'erreur est certainement redirigé vers error.txt.

Épilogue

Il y a encore plus de contenu sur les entrées / sorties standard, mais j'ai hâte de mettre à jour cet article. Je suis sûr que je vais le faire.

Recommended Posts

Comprenons ensemble les entrées / sorties standard de bash et écrivons un script shell.
Comprendre le nombre de paramètres d'entrée / sortie du réseau neuronal convolutif
Essayons un script shell
Traitez le contenu du fichier dans l'ordre avec un script shell
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé
Branche conditionnelle en raison de l'existence d'un fichier de script shell
Écrire la sortie standard dans un fichier
Lire la sortie standard d'un sous-processus ligne par ligne en Python
Remarques sur l'entrée / sortie standard de Go
Créer un script shell pour écrire un journal
Lançons le script Bash en Java
Jouons avec Python Receive et enregistrez / affichez le texte du formulaire de saisie
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Écrivons un programme Python et exécutons-le
Sortie sous la forme d'un tableau python
Prise en compte des forces et faiblesses de Python
[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
Un mémorandum sur les avertissements dans les résultats de sortie de pylint
Un mémo pour comprendre visuellement l'axe des pandas.
Reçoit et génère la sortie standard des implémentations Python 2 et Python 3> C
J'ai vérifié le système d'exploitation et le shell par défaut de docker-machine
[Ev3dev] Comprenons le mécanisme de contrôle LCD (écran)
Afficher le résultat de sortie de sklearn.metrics.classification_report sous forme de fichier CSV
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
[Note] Un script shell qui vérifie l'utilisation du processeur d'un processus spécifique dans une boucle while.
Donnez une date et une heure à la commande d'historique et collectez les fichiers d'historique de tous les utilisateurs avec un script
Ce qui semble être un modèle pour la partie d'entrée standard du pro de la concurrence en python3
Une histoire sur le portage du code de "Essayez de comprendre comment fonctionne Linux" sur Rust