Transcription
1. Intro: Bonjour et bienvenue à divulguer ici. Pourquoi je veux t'apprendre le script bash. Je m'appelle Eric Samara. J' ai 36 ans. J' ai environ 20 ans d'expérience dans l'exploitation d'un Lennox. Et pourquoi voudriez-vous faire pour apprendre à faire bash scripting tout en très simple tout ce que vous faites sur votre ordinateur. Ma grande majorité peut se faire sur la ligne de commande. Tout ce qui peut être fait sur la ligne de commande peut être scripté. Vous pouvez créer vous-même beaucoup de script pour vous aider dans votre quotidien dans vos tâches quotidiennes. Donc, sans plus attendre, apprenons à écrire.
2. À propos de notes.org: Ok, parlons du fichier de l'organisation ici une petite seconde. La raison pour laquelle je fais cela est parce que le mode orgue ajoute tellement de fonctionnalités à un simple
fichier texte qu'il améliorera grandement votre prise de ce coût. Vous partirez avec la classe avec un seul fichier contenant toutes vos notes que vous voulez prendre dans tout. Que toutes les informations que je voulais transférer pour faire référence à l'exercice, tout cela à l'intérieur d'un fichier texte. Donc, si vous n'avez pas le Mac un mode orgue et décrochage, je vous invite à aller à la limite libre a été la vidéo numéro 14 vous conduira à travers le processus et vous verra dans la maison voisine.
3. Personnages spéciaux: Ok, eh bien, commençons. Serait de bash script en premier. Je veux aller sur lequel vous, euh sur le terme de quelques personnages spéciaux qui commencent par simple pour ajouter des commentaires à un script de basse alors que dans une alliance de script bash. Commencer par ce personnage est un commentaire. Par exemple, ce serait un berceau inutile parce qu'il ne fait rien. Il a juste un commentaire à ce sujet. Il peut également suivre la fin d'une commande. Mais vous devez avoir un espace entre la fin de votre commande et un signe de commande. Sinon, il sera, grâce à un bash d'erreur vous permettra également de placer des commentaires intégrés dans un tuyau, par
exemple, et dans beaucoup d'autres domaines, ce qui le rend très difficile à lire. Deuxième caractère spécial que je veux passer à travers lequel vous êtes un séparateur de commend de
colonne semi vous permet de mettre plus d'une commande sur la même ligne. Donc, par
exemple, celui-ci ici écho ello et cet écho ils sont tous sur la même ligne. Donc si je devais supprimer les résultats ici et que je vais ici et j'appuie sur le contrôle C, voyez, confirmez que je veux évaluer le manteau. J' ai mes résultats ici. Je sais aussi que la séparation normale d'autres commend et et Olynyk Shell fonctionne également dans un
script bash par exemple, celui-ci qui forke un, um, processus en arrière-plan, puis démarrer le processus qui vient après. Vous pouvez également l'utiliser dans un script pour ah et en doubler un ici, ce qui signifie que la deuxième commande est exécutée. Si le premier éloge ce succès peut également être mis dans un script bash. Alors, quelle est la différence entre les guillemets doubles et les guillemets simples ? La différence est que les guillemets doubles préserveront le caractère le plus spécial de l'interprétation, tandis que les guillemets simples bien conservés, tous les caractères spéciaux. Je vais commencer ici avec un exemple de pas de guillemets dans une ligne de commande et les guillemets doubles. Donc, dans cette première ligne ici, cela va lister tout le fichier dans le journal slash var slash qui commence par s pourquoi et a
autre chose après, tandis que le 2ème 1 ici va chercher le fichier lu et s pourquoi avec une étoile au n. Donc, si j'avais le contrôle C, voir pour évaluer le code que ma première liste de commandes pourrait déposer tandis que mon 2ème 1 me dit qu' il n'y a pas de fichier s. Pourquoi star dans cet exemple ici je démontre la différence dans l'interprétation du double entre guillemets simples. J' ai donc une variable appelée barre qui contient l'aide de chaîne. Donc, si je fais écho comme ça, vous pouvez voir dans les résultats ici échos ici Bonjour. C' est une bonne façon d'écrire, mais c'est une bonne habitude de citer votre variable d'une façon ou d'une autre, donc la double citation fait écho à la valeur de notre temps. La citation unique égale imprime littéralement dollar var. Donc juste pour montrer l'exemple, si j'efface les résultats et que je viens ici et que j'avais le contrôle voir deux fois, je vois le résultat de ma ligne de
commande juste là. Donc c'est tout pour le caractère spécial simple que vous devez vous souvenir pour l'instant. Dans la prochaine session, nous allons commencer à regarder plus dans la variable et les fonctions
4. Variables de bash: Maintenant, regardons la variable dans bash. Les variables sont déliées. Fondamentalement, ce que cela signifie est que sous le capot, ils sont tous des chaînes de caractères. Sauf si vous êtes variable ne contient que digit bash vous permettra de faire notre
coopération admise sur elle. Voyez pour me lire pour savoir comment je vais ouvrir cette section de code ici parce que je la veux dans tampon
complet. Donc ici, je déclare une variable huit. C' est un bon Abbott, mais ce n'est pas nécessaire. J' ai assigné une chaîne et je crée une variable d'assignation. Battre le numéro deux, je leur fais écho. Puis je fais le tour et j'ai changé huit en numéro quatre et j'ai battu en corde. Je leur fais écho. Une fois que je suis ici, je crée la scène variable et je lui ai assigné le résultat d'un plus deux, ce qui est actuellement autorisé car il ne contient que des chiffres. Alors j'essaie de faire la même chose. Je crée la variable D et j'essaie de l'assigner B plus trois, sauf que beat est une chaîne. Ce n'est pas un chiffre pour l'instant, alors voyons les résultats de cela. Donc, si j'avais contrôle C scène, alors vous pouvez voir les résultats ici et vous pouvez voir l'erreur où bash se plaignent tenter de faire dans l'opération arithmétique sur la chaîne et le résultat de cette variable. C' est donc les bases accélérées de la façon dont les variables fonctionnent. Nous allons les voir plus en détail lorsque nous entrons pour déclarer ou taper la section dans la prochaine session, nous allons examiner les fonctions.
5. Fonctions: Maintenant, regardons les fonctions, les bases de celle-ci déclarant une fonction et en lui passant des fonctions de paramètres ou déclarant avec la fonction. Exemple de mot-clé. Fonction mon funk après la fonction nommée. Il doit y avoir un espace, et après cela, vous pouvez ouvrir le contenu de la fonction avec les crochets, mais vous devez avoir un espace entre les deux. Vous pouvez mettre ces crochets entre les deux, sauf que rien ne peut y entrer. Donc, c'est utile si vous avez l'habitude de le faire pour, disons, programmeurs
C. Mais Bash ne prend pas d'arguments de cette façon. Tu n'as pas le droit de mettre quoi que ce soit à l'intérieur. Alors regardons la première section de code ici que j'ai. J' ai oublié de mentionner quelque chose de très important au début de ce cours. Cette ligne ici est ce qu'on appelle « elle bang », et elle doit être là. C' est le chemin vers l'interpréteur de shell ou l'interpréteur qui va interpréter votre script parce que nous travaillons dans bash, scriptant la première ligne de chaque bash. Le script doit être ceci, euh, alors revenons à la fonction. Donc, comme vous le voyez, je déclare une fonction dont j'ai besoin d'un espace. S' il n'y a pas d'espace bash se plaindra à ce sujet maintenant. Dysfonctionnement ici. Ce qu'il fait cela d'abord fera écho que vous avez appelé une fonction. Ensuite, il va tester pour voir si le périmètre un un zéro dans lié Si c'est, cela signifie
que vous n'avez pas passé de paramètres. Sinon, il vous affichera les paramètres. C' est ainsi que vous accédez aux arguments étaient une fonction numéro un, numéro deux numéro trois et ils sont séparés par des espaces. Donc c'est la même chose, sauf en utilisant ces crochets ici. Comme je l'ai dit, ce n'est pas nécessaire. Mais si vous avez l'habitude de mettre dem, laissez-les là. Si votre programmeur c, vous allez l'aimer. Alors exécutons disco Dhere contrôle C fouets de mer. Nous y allons et vous pouvez voir le résultat de cette fonction ici. Donc, une fois de plus, je vous invite à y aller, gâcher les choses, les
changer, les
briser Et dans la prochaine session, nous allons regarder comment ce qui peut être retourné d'une fonction
bash
6. Retour de fonction: Ok, Qu'est-ce qui pourrait être retourné d'une fonction dans bash ? Il suffit de mettre un entier Onley Toute tentative de retourner autrement aboutira à un plus proche. Donc, en disco, la Skoda ici que j'ai, j'ai exactement la même fonction que j'avais avant sauf par soit retourné un zéro ou un. J' ai ensuite créé une fonction appelée valve rouge pour vérifier la valeur de retour et ici. Et cela aura plus de sens quand nous passerons par dia. Si les instructions vérifient que les premiers paramètres que le premier argument que la fonction reçoit Si elle est au-dessus de zéro, cela signifie
que nous avons une erreur. Si c'est le contraire, cela signifie le succès. Donc, nous appelons d'abord ma fonction, puis nous avons appelé ou fonction pour prendre la valeur de retour. Chaque fois que vous avez besoin de vérifier la valeur de retour de votre commande de dernière exécution et bash, vous l'excédez avec vous, accédez à l'aide du signe de point d'interrogation dollar. Donc, vous exécutez une commande, elle retournera une valeur zéro ou un ou plusieurs afin de vérifier que cette valeur est stockée dans la variable. C' est un site spécial en dollar étoile variable. Donc, nous faisons cela à nouveau vérifierait ma fonction avec un paramètre et ensuite la même chose avec les
autres ici. Donc, si nous regardons si nous avons exécuté avec contrôle C voir, vous pouvez le voir. Bien que vous ayez appelé, vous ne m'avez pas donné de retour de paramètre Number 1 fonction renvoyé un. Donc, c'est ainsi que vous renvoyez la valeur d'une fonction. Alors que faire si vous avez besoin de retourner la chaîne ? Eh bien, vous ne pouvez pas retourner la chaîne, mais vous pouvez, dans un sens, passer une variable par référence et modifiée à variable à partir du script lui-même. Donc, si disons que vous devez retourner une valeur, vous devez réellement changer une variable en dehors des fonctions face alors que le bois C'est cool . Donc ici, je déclare var je fais une fonction Rev sont qui va mal et nous allons mettre dans son premier paramètre. Ça mettra ce que je mets ici. Donc, si je regarde ici, je déclare ma fonction. J' ai affecté une charge ma variable var je vais avec j'ai appelé la fonction et j'ai passé ma variable de notre mais avis Il n'y a pas de signe de dollar ici avant, Sinon cela ne fonctionnera pas. Et puis après que je vais avec la corde, var aura changé pour L. Un monde. Donc, si je vais ça et que je l'exécute, vous pouvez voir qu'il est fait écho avant qu'il ne soit envoyé à. Rev sont un égal après, donc vous ne pouvez pas retourner autre chose qu'un entier d'une
fonction bash . Mais vous pouvez utiliser passer une variable par référence afin de changer une variable, et la prochaine session, nous allons regarder, déclarer et taper et examiner un peu plus dans les variables.
7. Déclaration de déclarer Declare: OK, regardons
maintenant plus en détail dans l'instruction de déclaration. Vous m'avez vu l'utiliser dans un exemple il y a quelques minutes, déclarer un jeu de caractères. Ils sont tous les deux identiques. Déclarez une version spécifique. Deux de bash et dactylographier travaux sur une autre coquille comme une déclaration de saucisse vient avec des options, et nous allons le regarder ici. Le tiret, Notre option est en lecture seule. C' est un équivalent grossier de la mer. Type constant. Toute tentative de modification de la valeur entraînera des erreurs. Donc, si je regarde le script ici, Je déclare, lire seulement notre ove r et je l'ai dit à deux. J' ai fait écho à une variable. Ensuite, j'essaie de le changer et je fais écho à la variable à nouveau. Je vais supprimer les derniers résultats. Réexécutez le script, et vous pouvez voir que la variable est restée la même et bash à travers une erreur lorsque nous avons assisté à le changer, vous pouvez utiliser declare pour déclarer entier uh, avec l'option tiret I. Donc, si je déclare un ici ma fin, je l'assigne à je l'écho. Ensuite, j'essaie de le changer en une chaîne avec des espaces et je fais écho à ma fin à nouveau. Et comme vous pouvez le voir bash ici jette une erreur et la variable reste au numéro deux. Ensuite, j'ai essayé de le changer en une chaîne sans espaces dedans. Et bash ne se plaint pas, mais mes zéros et égaux. Le point est, si vous déclarez un entier spécifique, assurez-vous qu'il reste une intégrale spécifique. Sinon, ne spécifiez pas que c'est ce que vous voulez. Vous aurez moins de restrictions où vous serez en mesure de le modifier pour une bonne mesure. Je vais supprimer les résultats ici et nous exécutons le script et nous avons les mêmes résultats maintenant pour déclarer un Neri avec bashes l'option de paiement du tiret. Donc ici, je déclare mon Eri j'ai initialisé la zone. Ils sont séparés de l'espace Ici, j'utilise une boucle for qui verra plus de détails pour passer à travers chaque élément à l'intérieur de la zone elle-même et je les fais écho. Je le fais d'une autre manière, en utilisant une boucle while et je le fais en opération arithmétique dans ce cas ici. Donc, ces deux-là, nous verrons plus en détail plus loin sur la route. Mais si nous le faisons maintenant, vous pouvez le voir passer à travers la zone et me donner à certains de l'exemple, vous pouvez également déclarer spécifiquement une fonction. Maintenant. Si vous déclarez f argument veuve, il fait une liste de toutes les fonctions qui ont été précédemment définies dans ce script. Donc ici, je déclare ma fonction et je spécifie la dette. C' est une fonction avec l'option tiret F. Ensuite, je déclare variable mon funk, Torri. Mais je ne dis pas ce que c'est cette fonction que je n'ai pas déclarée et ce n'est pas un problème. C' est la fonction à la définition que j'ai déclarée précédemment. Et maintenant, je viens de concevoir une variable de fonction. Donc mon funk 3 est maintenant une fonction. Je les ai appelés 123, puis je déclarais Dash F sans options. Voyons les résultats. Vous en avez appelé un. Vous avez appelé trois, puis il liste toutes les fonctions elle-même. Dans le script, le tiret se ferme pour les exportations. J' ai répertorié ici parce que si vous regardez les options par vous-même, vous verrez qu'il est là. Ce que je décrirai plus tard. Cela aura beaucoup plus de sens lorsque nous aurons une meilleure compréhension de l'
environnement bash et de ses fonctions d'exportation. et maintenant, par lui-même. Tout ce que nous avons vu qui auparavant peut même l'essayer dans votre shell dans votre terminal lui-même. Très bien, en déclarant que vous verrez qu'il vous imprimera un tas d'informations. C' est bon de regarder. Donc, à la prochaine session, nous allons commencer à examiner la déclaration conditionnelle, y compris la déclaration if dans l'énoncé de cas.
8. Si vous avez une déclaration: Commençons par regarder la déclaration conditionnelle de l'homme d'État conditionnel. Son premier regard sur l'instruction if Vous avez une référence comme d'habitude ici. Jetons un coup d'oeil à la structure. Tous font cela dans un tampon, il est
donc plus facile que vous pouvez mettre dans l'instruction if dans une ligne comme celle-ci. Si votre recommandation de test était ici, alors vous auriez besoin d'une demi-colonne. L' espace est important. Den Votre code à exécuter. Même chose avec le semi-Colin dans les espaces. Donc, ce serait une déclaration if sur la seule ligne si vous pouvez le faire. Les supports compactés ne sont pas toujours nécessaires, mais c'est une bonne habitude, mais vous pouvez le mettre dans une ligne multiple comme celle-ci. Si votre séquence de test ici semi colonne importante et est donc l'espace, vous pouvez l'utiliser avec des parenthèses simples ou doubles. Vous verrez et comprendrez pourquoi un peu plus bas. Quoi ? C' est comme ça que vous faites si vous voulez ajouter une instruction else si semi colonne den ales et terminer avec f vous et c'est ainsi que vous feriez votre if if if if a else instruction,
Donc, notez que le else si nécessite également une colonne semi, puis un mot-clé. Et, comme toujours, les espaces sont importants. Alors, quelle est la différence entre les crochets simples dans les doubles parenthèses ? Et ici, nous avons un joli et bon petit script. Il s'agit d'un copier-coller à partir de la source écrite là. Donc, contrairement aux crochets simples, les doubles parenthèses empêchent le fractionnement des mots des valeurs variables. Donc, si R est égal à la barre avec des espaces, vous n'avez pas besoin de double guillemets var dans un test, même si cela reste une bonne habitude. En outre, les doubles crochets empêche l'extension du nom de chemin donc chaîne littérale avec joker card. N' essayez pas de dépenser pour le dépôt. Rappelez-vous notre Excepter Remember , par
exemple, avec le fichier LS au début, en utilisant des crochets
doubles, double égal et ah négatif égal interpréter chaîne à droite comme shell glub pattern pour être correspond à la valeur à gauche, par
exemple, la valeur est égale à valve. Ok, jetons un coup d'oeil à ce script ici. Voilà ce que j'ai fait. J' ai créé ma valeur de R un et R deux, qui sont les mêmes. Et puis je selon ici, j'ai fait écho au test, et j'ai utilisé la citation, citation
simple et citation double de telle sorte qu'il affichera exactement ce qui est affiché dans la section test ici. Et puis vous avez les résultats. J' ai donc les crochets simples avec Div sont en guillemets doubles avec la variable sans guillemets. Double crochet serait double guillemets, double Dracut sans guillemets et puis un type différent de signe égal mettant à des signes égaux au lieu de mettre la même chose ici à un signe égal un crochet, pas de guillemets et ainsi de suite. Donc, si nous exécutons le disque dû, vous pouvez bien voir les résultats ici. Et il y aura un bon exemple de la façon d'utiliser les guillemets simples et doubles et de la différence que cela fait simplement en ayant des parenthèses simples ou doubles ici. Donc, vous voyez que lorsque nous faisons l'égal comme ce var un Anvar pour être égal il correspond quand nous l'avons fait Comme cette barre veut Anvar ne sont pas égaux, il ne s'additionne pas dans les guillemets doubles avec les doubles parenthèses, ils sont égaux à
guillemets doubles doubles parenthèses sans guillemets Ils sont égaux et la même chose ici dis matches Cela n'équivaut pas et ceux sont égaux et sont donc ceux. Cela vous donne donc un bon exemple de comportement différent, en fonction de guillemets
doubles, de parenthèses simples. Je vous invite vivement à entrer dans le scénario de la mort et à jouer avec. Changez-le, modifiez-le, cassez-le à eux. Différents tests. Ah, nous allons Seymour dans le test possible qui peut être fait dans la section suivante ici.
9. Si testez dans des fichiers: D' accord. Voyons quel genre de tests on peut faire. Propre fichiers sous les liens pour une liste complète des tests que vous pouvez faire sur les fichiers. Suivez le lien qui est juste au-dessus ici. Nous allons passer en revue rapidement ensemble après cela, Mais laissez-moi d'abord supprimer les résultats. Ici. Voyons ce qu'on a là. J' ai un exemple. Euh, donc ici nous commençons à définir un fichier en une variable. Et maintenant je teste pour voir avec l'option Dash huit. Si le fichier existe, notez que dans l'instruction if, des crochets simples sont utilisés et comme d'habitude, les
espaces sont importants. Maintenant,
ici, je vous montre un test négatif. Il s'agit d'un fichier qui n'existe pas. Donc, si le fichier n'existe pas, nous allons cette boucle sinon, parce que cette boucle maintenant, je réinitialise le fichier Desist, amour. Et puis j'ai vérifié pour voir si le fichier existe. Et puis j'ai vérifié pour voir si le fichier n'est pas un répertoire. Donc, fermons ceci et vous pouvez voir les résultats juste là que mes virus aiment existent. Celui-ci ne le fait pas. Et celui-ci est un fichier régulier, et ce n'est pas un répertoire Maintenant regardons rapidement ici les détails car il y a une liste
assez complète d'options que vous pouvez faire. Eso, par
exemple, celui-ci que nous avons vu pour voir si le fichier existe qui équivaudra à vrai, même s'il s'agit d'un répertoire. Parce que sous Lennix, un répertoire est juste un fichier qui a la propriété de contenir d'autres fichiers. Est-ce que l'unité de savoir si c'est un dispositif spécial de bloc ? Un caractère correct. Dossier spécial. Désolé Bloquer fichier spécial et les fichiers spéciaux du directeur pour plus de détails sur ce, vous pouvez voir mes coûts sur le dans Lenox. Tout est un fichier. Je fournit une très bonne explication de ce que nous entendons par ceci un tiret DS pour savoir si c'est un répertoire. Dashi est le même que ça, hein ? Euh, après-midi. C' est un dossier régulier. Donc pas un répertoire, pas un lien symbolique, pas un bloc spécial ou tout de cela. Juste un fichier ordinaire. Euh, c'est tourner son lien symbolique. Comme vous pouvez le voir, il y en a un assez vaste, même au point que dans ce test ici, c'est vrai. Le premier fichier a été modifié plus récemment que celui qui a été déposé. Faire ou un fichier existe et tomber à elle ne le fait pas. Donc, vous pouvez voir qu'il y a une assez longue liste de tests étendus que vous pouvez faire sur les fichiers dans l'instruction if dans le script bash eso je vous invite à passer par et à modifier ces morceaux de code là, euh, voir quel genre de que vous pouvez faire sur votre propre système de fichiers.
10. Comparaison binaire: OK, regardons
maintenant les opérateurs de comparaison. Encore une fois, vous avez ici la référence que nous allons faire. Nous allons passer par la chercher rapidement à la fin. Je veux d'abord vous montrer un opérateur spécifique bash. Cela crée une comparaison binaire et ils doivent être utilisés avec des entiers Onley que j'affiche dans le script Que se passe-t-il si vous l'utilisez avec une chaîne de chaîne utilise différents ensembles de ah, opérateurs de comparaison de
confort. Alors regardons ici. J' ai mis en place trois variables ABC A et B égal à un c égal à deux et je fais écho à l'information ici et j'ai utilisé une citation unique pour m'assurer que cela fait écho au dollar A et non à la valeur à l'intérieur du dollar huit. Maintenant, commençons à passer par le test que nous accomplissons ici. Donc, dans ce cas,
nous vérifions si le dollar A est égal au dollar battu. Et encore une fois, je fais écho en utilisant la citation simple et double partout où cela est nécessaire, de
sorte que dans le résultat, vous voyez le test qui a été effectué et les résultats que vous avez obtenus Donc celui-ci ici n'est pas égal. Cet opérateur ah est supérieur à supérieur ou égal inférieur à inférieur ou égal. Ensuite, je passe à définir ma variable A et B à une chaîne un mot. Allô ? Bonjour. Ils sont Ils devraient aboutir à être égaux. Sauf que vous verrez dans l'exemple. Et ceux-ci ne doivent pas être utilisés pour la force. Alors fermons ça ici. Mais c'est exécuter les résultats. Nous avons donc la variable, et maintenant vous pouvez voir le test et le résultat que nous avons obtenu. Maintenant, c'est là qu'on a
essayé de comparer deux cordes. C' est l'erreur que bash nous a donnée parce qu'il attendait une expression entière place. Et cela signifie qu'il n'est pas égal, même si les deux chaînes étaient en fait les mêmes. Maintenant, regardons à quoi ça ressemble. Si nous devons utiliser des crochets doubles au lieu de crochets simples, cela fonctionne le même poids tant que vous utilisez des entiers Ah, pour effectuer la comparaison maintenant cela fonctionnera différemment ici une fois que je le changerai en chaîne. Voir que A et B n'est pas égal à ok, et je fais la même comparaison ici, mais doublerait parenthèses nous allons voir les résultats rapidement. Tout d'abord, il ne donne pas d'erreur, mais cela me dit que a est égal à être dans mes chaînes même si elles ne sont pas égales. Eso s'est souvenu de ces comparaisons. Ils sont opérateur de comparaison binaire, et ils doivent être utilisés pour des entiers sur Lee. Au cours de la prochaine session, nous examinons des façons plus courantes de faire des tests.
11. Si avec des supports: Ok, maintenant regardons des façons plus courantes de tester Euh, c'est méchant signifie ici, tout d'
abord. Ah, un petit avertissement. Des façons plus courantes de tester signifie plus de façons de se confondre sur le fonctionnement des choses. Bash un langage laid pour jouer avec. Très fort, très puissant mais très moche. Donc, d'abord, nous allons regarder la différence dans l'instruction if en utilisant des crochets simples Dan en utilisant crochets
doubles, puis en utilisant des crochets doubles comme ceci le résultat des
trois scripts suivants peut être un peu déroutant. Ce qui est important de remarquer et de se rappeler est que le seul crochet si le test fonctionne bien pour vérifier si des entiers ou égaux ou doubles égaux, cela ne fonctionne pas très bien en un seul point de parenthèses étant donné que les crochets simples sont bons pour égaux ou rien à tous. Les supports simples ne sont pas fiables de voir le moins lors de la comparaison avec ceux de l'opérateur par les opérateurs
re fonctionne bien dans des parenthèses simples par les opérateurs ennemis est celui que nous venons de voir. Jetons donc un coup d'oeil ici au code pour la comparaison des entiers avec des parenthèses simples. Donc ce que j'ai fait dans ce manteau, c'est que j'ai mis en place une aide variable, être en C et ensuite j'ai écrit le test actuel, et j'ai utilisé un support. Et j'ai écrit que la chaîne de la façon qu'elle reflète exactement ce qui est écrit ici et la fin moins dit Echo de ne pas mettre une nouvelle ligne à la fin afin que cette ou dis ligne bien, écho à la fin de à la fin du 1er 1 Et je ont également ajouté comme si les résultats étaient soit bons, soit faux. Donc si on ferme, on va regarder en bas. Oui, allons-y, parce que ça a changé les résultats pour que vous puissiez voir que vous avez bien celle-là ? Celle-là, c' est ça. Celle-ci, ils se sont trompés, celle-là ils se sont trompés. Celle-ci, ils se sont trompés. Cette visite par erreur. Ah, et ainsi de suite. Donc, comme je le disais, les crochets simples ne sont bons que pour ces deux signes ici ou pour l'opérateur binaire que nous avons vu dans le passé. Il pourrait donc être plus facile de se rappeler d'utiliser un seul support pour les opérateurs de batterie. C' est regarder sa cause. Ces résultats maintenant quoi ? Supports doubles. Donc ici, j'ai fait la même chose. Echoed la desde actuelle loin il est écrit, et si vous remarquez qu'il y a deux ici que je ne mets pas dans ce cas parce qu'ils ne fonctionnent pas. Alors exécutons le résultat de ça. Et comme vous pouvez le voir déjà mieux, il est de les obtenir tous en ce moment, si vous avez remarqué ces deux ici quand vous regardez le premier exemple dans le second ou réellement manquant dans le second exemple, ils fonctionnent légèrement différemment. Les opérateurs précédents peuvent également être utilisés de la même manière. Maintenant, nous utilisons nous faisons le test en utilisant ces supports de compteurs et puis je re essai de tentative mentionné dans l'exemple. Vous pouvez voir qu'ils l'ont eu en ce moment nous essayons les tests précédents avec ceci. Cela provoque les Américains et tente une mission. Mais cela fonctionne correctement, dissed fonctionne correctement. Cela ne fonctionne pas correctement car il tente et les affectations entre un être égal et c' est bon. C' est bien. Donc, comme vous pouvez
le voir, l'instruction if avec ces crochets offre des résultats de leur langue plus semblable où un simple signe égal sera essentiellement donné affectation. Est-ce que c'est un test pour voir s'ils sont égaux ? Eso vous ? Le juste est que vous êtes mieux d'utiliser ces crochets de compteur et vos
instructions if , puis vous les crochets simples pour les opérateurs binaires dans la prochaine session ici. Et vous espérez Désolé. Et vous pouvez voir dans le court ici lorsque vous faites opérateur binaire utilisé parenthèses simples et utiliser ces crochets pour faire tout autre type d'opération. Toujours une bonne habitude de citer votre variable dans la prochaine session, nous allons regarder la comparaison de chaînes.
12. Pour la boucle: Ok,
Maintenant, commençons à regarder dans les boucles. Le 1er 1 que je veux regarder à travers quoi est le pour l'amour ? Encore une fois, vous avez un lien vers la documentation ici. La structure des quatre groupes est très simple. Quatre articles en moins font. Donc, c'est un peu de la même structure que l'instruction if ici, nous avons un exemple d'une boucle quatre traversant une zone. Regardez le code ici, que vous Donc je déclare une zone qui est basée séparée de simplement nombre. Donc quatre articles dans. Et c'est, ah, le format pour dire à bash d'utiliser tous les éléments de la zone. Euh, fais l'écho. C' est donc un exemple
très, très simple. Et comme vous vous attendiez à cette liste tous les éléments de la boucle for ici, j'utilise une boucle for pour passer par l'argument fourni sur la ligne de commande. Disons comment vous passeriez par l'argument que vous mettez lorsque vous appelez le script. Donc, c'est le format pour obtenir le nombre d'argument qui a été passé à description. Si c'est égal à zéro, nous avons fondamentalement une erreur sauf une erreur froide. Sinon, nous imprimons le nombre d'arguments, et nous le passons maintenant en nous imprimons le nombre d'arguments,
et nous le passons maintenant en
mode
orgue. Fondamentalement, la ligne de commande de la colonne d'en-tête et tout est espace. Séparé est ajouté aux fouets de ligne de commande. Alors on y va. La longueur de l'argument est de trois et trois Argument que j'ai passé à travers. Ah, si vous avez manqué que cette année est de rediriger l'erreur standard dans la sortie standard de sorte que lorsque nous évaluons avec un organe, s'il y a une erreur, princip et le résultat au lieu d'ouvrir et vous tampon. Mais maintenant, je peux essayer sans argument ici en les supprimant et vous pouvez voir une fourniture, une série d'arguments. C' est donc la simplicité d'une boucle for. Dans la prochaine session, je passerai à travers la nature avec toi.
13. Pendant et jusqu'à ce que la boucle: Maintenant, regardons rapidement la boucle sauvage. Même chose que vous avez un lien vers, Ah, documentation
plus étendue dans l'exemple ici, j'ai utilisé une boucle while pour passer par un
eso Neri . Même chose. J' ai déclaré la même variable ici. Ensuite, j'initialise une variable à zéro. Je vais être démêlé un certain nombre d'éléments dans la zone elle-même. Je l'équité et pour une bonne mesure. Et puis c'est tout simplement un moment. X est Bill O Arlen, qui est le nombre d'articles dans la zone fait écho. Et si vous voulez faire une incrémentation dans bash, vous devez le mettre entre ces deux crochets. Ah, c'est fondamentalement n'importe quelle opération arithmétique sur les chiffres doit être placée entre parenthèses. Maintenant, j'utilise la même boucle ici, mais pour revenir en arrière faire un peu de référence. Et la façon dont l'instruction if fonctionnait avec le bracket et l'opération binaire et
l'opérateur commun . Donc, la boucle while est la même ici. Vous voyez que pour utiliser ce symbole, j'utilise des crochets doubles. Je peux utiliser la même chose que n'importe quelle des instructions, seul crochet et utiliser un opérateur binaire pour le faire aussi. Laissons-le rapidement juste pour le plaisir,
et il imprime aux résultats,
comme nous nous attendions et il imprime aux résultats, . Jetons rapidement un coup d'oeil à la boucle until. Il est très similaire à la boucle sauvage, sauf qu'il s'exécutera jusqu'aux résultats du test. Vrai. Ah, au lieu de pendant que les résultats du test sont faux ou de la vérité dans l'autre sens. Quoi qu'il en soit, eso je fais la même chose. Je déclare un aéré. Je reçois le nombre d'articles sauf que jusqu'à ce que X soit égal au nombre d'articles dans la zone, je fais boucle orteil à l'intérieur. Même chose pour incrémenter x deux. Laissons-le juste pour un bon exemple. On y va. Il fonctionne comme on s'y attendait.
14. Redirection saisie: OK, maintenant regardons la sortie d'entrée, la redirection et les boucles. Ah, si vous ne savez rien sur l'entrée et la sortie d'une direction, je vous recommande de discuter ici des descripteurs de fichier, redirection de
socket et de la substitution de processus. C' est expliqué en détail là-bas. un Voiciunlien de référence, comme d'habitude. Euh, une autre façon de contrôler la boucle est de spécifier classée pour rééditer l'entrée de la commande lue est utilisée pour cela aussi longtemps que l'entrée ou l'entrée dans la boucle. Il continue quand il cesse de venir dans la boucle se ferme. Cela permet un script assez astucieux. Lorsque vous combinez ces connaissances avec une bonne compréhension du descripteur de fichier de type de fichier et socket, vous pouvez contrôler Alou en alimentant les données d'un fichier sur un ordinateur distant. Hum, cette section ici est si vous appuyez sur le contrôle C contrôle Z pour l'évaluer,
il vous imprimera le manuel d'aide des orteils pour l'option de lecture juste dans votre fichier orig. Ok, maintenant, regardons le code dans cette section ici, Donc j'ai d'abord défini la variable de déclaration et je lui ai attribué la valeur à un chemin pour le nom de fichier qui n'existe pas. Je n'ai pas créé le fichier avec la commande tactile. Ensuite, je passe à émettre une commande fine sur le répertoire racine. Je fais cela parce qu'il est garanti de donner ah, erreur
standard et sortie standard. Serait-ce louange ? Parce que certains dossiers, je n'ai pas l'autorisation d'accéder à eso. Ce qui se passe ici, c'est que je redirige la sortie standard dans un fichier, puis je procède à rediriger l'erreur standard dans le flux de sortie standard, qui va dans un fichier que j'ai défini le nombre de lignes autorisé à zéro, puis je démarre mon mur Commande while loop devaient lire la commande dessus. Et tout ce que Luke fait, c'est qu'il incrémente le camp de ligne. C' est la redirection d'entrée qui se passe ici. J' ai mis ce symbole et le nom du fichier et lu lira ligne par ligne qui l'a suivi
jusqu'à ce qu'il soit vide. Une fois que cela est fait, il sera imprimé ou en ligne camp. Alors je nettoie. Nous n'avons pas non plus besoin de créer un pot que nous pouvons créer. Nous pouvons utiliser la substitution de processus qui est également décrit plus en détail dans la classe que je
vous ai montrée plus tôt, donc nous avons dit que le nombre de lignes à zéro la boucle while reste le même, nous commençons notre redirection d'entrée. Mais au lieu de lui donner un nom de fichier, nous lui donnons une substitution de processus, et cela donnera les mêmes résultats. Voyons maintenant les résultats de cette commande. Si vous exécutez la commande fine pour la première fois, cela peut prendre un certain temps avant que les résultats ne s'affichent. Moi. C' est parce que les recherches ont été encaissées. Ok, donc j'ai les deux informations ici. Et si je veux le faire, peut-être que vous pouvez savoir pourquoi les numéros de ligne ne sont pas les mêmes.
15. Pause et continuez: bonjour. Terminons rapidement notre section de boucle ici. Nous allons terminer cela avec une explication de la pause commend et continuer eso comme généralement ont un lien de référence. Génial Ici, regardons d'abord une commande de pause. Il est utilisé pour s'arrêter un peu avant que ce ne soit normal. Finissant eso il cherche à coder ici rapidement disco Dhere Vous voulez l'exporter Non
évalué car il nécessite l'entrée de l'utilisateur. Donc, je déclare que le processus de la personne de fonction vient et à partir de là variable articulaire et ma place Toute la commande qui va être reçue en argument dans la variable cmd Et puis j'ai évalué et je suis retourné à la valeur eso ici. Si vous entrez quoi que ce soit, il appellera la commande PERL dit avec l'entrée que vous avez donnée Si nous recevons une
valeur de retour supérieure à zéro, nous faisons écho à une erreur. Si vous entrez quitter. Nous démontrons la commande break ici donc je vais exporter ce code en appuyant sur le
contrôle que vous contrôlez C control vnt et à partir de là je suis capable de le faire, nous allons Ou si je viens de mettre ls il importe de transférer toutes les commandes que je lui donne réellement. Et si je mets des pauses publicitaires sur le point de quitter. Diluer rapidement. Regardons à continuer commande ici pour continuer une instruction, reprendre l'aération pendant un certain temps et jusqu'à ce que la boucle Ils agissent également la même chose pour un lupin sélectionné qui sera vu plus tard. Si vous l'utilisez dans une boucle for à la variable de contrôle Prenez la valeur de l'élément suivant dans la liste lorsque vous l'utilisez dans un certain temps ou jusqu'à ce que la boucle reprenne avec la même boucle. Ce n'était pas le cas. Je vais donner un exemple ici. Il s'agit d'une commande continue utilisée dans une boucle for. Donc, je déclare dans Eri je passe par là si x finit par être la position numéro trois C'est quand nous envoyons la commande continue et sinon il est X égal à X vieux est normal. Tu vas voir le Lupul finir ? Qu' est-ce que tu veux dire par « modification » ? Ici ? C' est réparé que, euh et comme vous pouvez le voir, nous arrivons à notre troisième position et nous envoyons pour continuer à recommander, mais tout continue normalement. Maintenant, jetons un coup d'oeil dans un moment. Venez ici, il agit différemment. J' ai donc déclaré la zone que j'ai mis mon X égal à zéro. Je commence à le traverser si je frappe la position 3 que j'envoie pour continuer. Félicitez. Si vous louez cela ici,
vous finirez avec une boucle infinie parce que lorsque le continue sera envoyé, X sera toujours égal traitement ne le déplacera pas à la position suivante. Donc, je mets que oser l'incrimination de X afin qu'il puisse continuer Si vous ne le faites pas, Si vous recommandez l'incrimination des œufs et vous l'évaluez en mode organe, Je vais vous montrer ici. Faisons-le. Alors venons en commentaire ceci sur. Donc, si j'essaie de l'exécuter maintenant, l'exécution ne sera pas terminée. Et ça semble moins. Si iMac est écrasé, appuyez
simplement sur le contrôle g pour quitter l'évaluation à mi-parcours ou n'importe où eso qui vous montre la différence et la poursuite entre la boucle for et un certain temps, ou jusqu'à ce que cela termine nos classes ou section sur les boucles. Dans la vidéo suivante, nous allons commencer à regarder comment vous passez des arguments à, euh, votre script
16. arguments en lignes de commande: Bonjour. Maintenant regardons comment on a passé des arguments à ton script. Ah, passer des arguments à votre script, où il est très similaire à un argument de passage à une fonction à laquelle il peut être accédé
à partir de Dollar Juan, Dollar 2 et ainsi de suite. Donc, allons d'abord jeter un coup d'oeil et un exemple littéral ici, passant par une liste de, ah, argument de ligne de
commande avec une boucle quatre. Donc, j'ai ouvert avec elle sac et puis quatre I et ceci est assemblé pour utiliser pour agir, tester tous les arguments dans une boucle pour faire écho dollar. Je l'ai fait un script très simple et un mode orgue ici. C' est l'argument conduit que je passe et je vais passer deux autres arguments que je vais évaluer. Et comme vous pouvez le voir, mes sont Guan et tous les arguments que j'ai passés sur la ligne de commande. C' est donc un moyen simple de passer 30 arguments de ligne de commande. Serait-A pour boucle Jetons un coup d'oeil à le faire avec un eso sauvage. J' initie zéro supplémentaire. J' assigne tout d argument de ligne de commande à une zone variable, appelle nos oeufs, et je fais mon habituel tandis que X est en dessous de l'élément number off et la zone argh fait écho M et incrémenter DX. Donc, si j'imprime les résultats et vous pouvez voir que mon option de ligne de commande ou ici bien comment allez-vous ? Et ils sont imprimés chacun sur une seule ligne dans la prochaine session, ou aller voir comment vous pouvez implémenter l'argument de style Lennox dans votre script, je veux dire,
comme, comme, option
courte et longue Combiner l'option qui, Dash l 8 eso Nous allons regarder ça à la prochaine session ici.
17. Args de style Linux partie 1 (séparé de l'espace): Alors, comment implémenter des arguments de style Lennox dans votre propre script ? Il s'agit de trois façons courantes de le faire. Regardons d'abord la 1ère option 1 à l'espace Séparé. Vous appelleriez votre script avec la méthode fall away Met. Euh, tu appellerais le nom du script, et tu pourrais passer une petite option. Permet un tiret A, Dashti ou Dash V. Si l'option prend une valeur, vous devez placer un espace dans la valeur. Ou vous pouvez utiliser la même méthode sauf avec des noms d'options longs que l'espace et la valeur. Si elle en a besoin. Cette méthode ne met pas fin à tout handle. L' option de combinaison permet un tiret L huit pour fournir deux options. Jetons un coup d'oeil au code ici. Eso ici, je le déclare trois variables. Maintenant, cette technique utilise une technique de valeur clé. Il gère l'option courte et longue de la façon dont ce programme Donc, je créerais une boucle quatre comme O. Cela signifie
que tandis que le nombre d'arguments dans la liste d'arguments fournie est au-dessus de zéro, continuez. Nous avons attribué le numéro un à la clé. Avons-nous vérifié le Dickey au cas où il contre toutes ces options Ici, nous fournissons une
option courte que l'assemblage de tarte qui signifie ou dans la déclaration de cas. Donc, je pourrais aussi le faire. Et c'est un fournir un Non, ce serait comme ça qui rendrait cette option disponible et bonne vers une ligne de commande. Ensuite, j'ai attribué l'option de valeur au numéro deux. Donc, lorsque vous faites une boucle comme
celle-ci, ce sera toujours un moyen clé de la voir. Quoi ? Eh bien, où la première partie est l'option. L' option courte longue qui va dans la clé, qui est numéro un et numéro deux devient la valeur de l'option elle-même. Une fois que nous avons utilisé ces clés et valeurs, nous devons changer le nombre d'arguments qui sont encore dans ou moins à utiliser. Fondamentalement, celui-ci ici donc je fais un changement à ce moyen va déplacer ma liste d'arguments en
supprimant au 1er 1 sur la liste tombe dans le prochain à venir en place. Donc même chose pour le fichier de tiret. Maintenant, Dash D n'est pas une option qui prend un argument. Vous le fournissez ou vous ne le faites pas. Et donc nous ne changeons que par un. Et ceci est pour toute autre option que nous ne connaissons pas sur l'enregistrement. Nous ne connaissons pas l'option
, , et ensuite nous fournissons la commande Shift. Une fois que tout cela a été fait, nous imprimons simplement la valeur de nos trois options que nous avons mises en place. Voyons donc ce que les résultats de cette année. Donc une fois de plus, j'ai passé mon argument de ligne de commande à travers cette partie ici, tout avant la redirection de la norme, jamais. Donc si je le fais comme ça, tu vois ça ? L' argument de passage et il a eu toutes mes options. ce moment, allons pour le fonds et fournir une option inconnue. Mais cela me dit qu'il ne connaît pas l'option. Dash mange maintenant. Si je devais faire une erreur et fournir une option pour cela, je pense contiendrait une valeur mais ne l'est pas dans le cas. Il le voit simplement comme une option, et il y a une erreur parce qu'il ne sait pas quoi en faire. Maintenant. Si je devais essayer une option combinée, vous voyez qu'il ne reconnaît pas ces deux options à ce stade. Donc, c'est ainsi que vous implémenteriez une liste d'arguments Lennox tell séparés par un espace dans la prochaine session, nous allons regarder d'une manière différente une méthode séparée égale.
18. Args de style Linux partie 2 (= séparé): Alors maintenant regardons une méthode différente. Nous allons examiner l'égalité séparée. Ah, vous
le faites ? Tel est assez similaire à l'espace, sauf qu'au lieu d'un espace, nous mettons signe inégal, cette méthode ne termine pas toutes les options de combinaison non plus. Jetons donc un coup d'oeil au code ici, il est légèrement différent. La boucle est différente dans ce cas pour moi et cela signifie que tout l'argument passé à travers la ligne de
commande, puis nous faisons un cas sur le I. Et si vous regardez les options que nous avons sont l'option courte sont signe égal et puis un
symbole étoile . Donc, fondamentalement, je vais contenir toute votre option de tiret égale, je termine. La valeur sera incluse à l'intérieur de cette variable I et en bas de la première ligne ici nous
extrayons réellement ce qui vient après le signe égal et l'assignons à notre valeur. Donc nous avons seulement besoin de passer d'une même chose pour le fichier de tiret et la même chose pour si nous ne
connaissons pas les options. Alors exécutons rapidement le script et voyons les résultats passés de sorte que vous, cela fonctionne exactement comme nous nous attendions. Cela fonctionne exactement comme l'espace séparé sauf que nous mettons signe inégal. Mais la structure du code est légèrement différente. Dans la prochaine session, nous allons examiner l'utilisation get ups bash intégré que cette fois prend une option combinée.
19. Le style Linux argile partie 3.1 (getopts): Regardons maintenant notre troisième option pour implémenter l'argument de style Lennox avec bash Bail temp. Obtenir l'officier recommande d'abord obtenir des ups. Onley s'est occupé de l'option courte. n'y a pas d'option longue mais il gère aussi, change ou combine l'option comme le tiret V f ou L s Dash L. A. Il y a un lien de référence différent ici. Juste rampé vers le bas pour obtenir des ups Une note. Si vous courez, homme et puis vous écrivez get opt no s Ce n'est pas la même chose. Donc, les usages obtiennent ups nom de chaîne et arguments entre parenthèses ici. Jetons donc d'abord un coup d'oeil plus en détail sur l'utilisation. Donc, se lever est un bash Bilton up chaîne contenait l'option caractères orteil look, par
exemple. Ou si G signifie que nous recherchons les options courtes qui sont dues, demandez FSG ou n'importe quelle combinaison. Jetons donc un coup d'oeil à l'exemple de code ici. Donc, en utilisant une boucle while pendant que get ups
dans, euh, ici vous mettez les options que vous cherchez et c'est la variable qui va être contenue. Donc, c'est essentiellement en train de passer. La première option va mettre le nom de l'option dans O P. T. et exécuter un écho. Voyons donc les résultats ici pour que vous puissiez voir que j'ai mis mes arguments de ligne de commande ici, et qu'il les vit dans le même ordre. Si je devais les changer comme ça, ça changera les résultats. Et si j'étais au milieu d'un, ça ne le montre pas. Et que se passe-t-il si j'en mets un autre que je ne cherche pas ? Il se plaint d'une option illégale. Maintenant. Si un caractère est suivi d'une colonne, l'option doit avoir un argument. Dans ce cas, Get Ops joue l'argument dans la variable, et il est sensible à la casse. O P T A R G Kate. Non, regardons le code rapidement ici. Donc, je déclare une variable à jouer avec. Maintenant, dans cet exemple ici, l'option f devrait avoir un argument. Nous sommes donc à la recherche de l'option O g. autonome et F devrait avoir un argument. C' est notre structure clé ici, où nous assignons une valeur à 20 p. T un r g. Quand il s'agit d'un avis, puis nous imprimons notre option Donc regardons ici si je fais notre
argument de ligne de commande que je suis envoyer au bloc de code qui est supprimé juste pour que nous puissions voir le nouvel air que vous allez et vous pouvez voir nos options ici. Maintenant, changeons ceci et mettons un espace pour l'option tiret F. Cela ne fait pas la différence. Il le place toujours, et vous remarquez qu'il n'y a pas d'espace entre ici maintenant. Si je devais au milieu de l'argument ici, cela nous jette une erreur que l'option nécessite un argument. Je remplacerai l'argument où il va ici. On le dirige, et il y a nos options. Chaque fois qu'il est invoqué, get UPS joue l'option suivante dans une variable et l'index de l'argument suivant à traiter dans o p. T i N D. C'est une variable encore une fois, sensible à la
casse. Bien que cette variable soit B sera définie sur un chaque fois que le script Shell est impliqué, elle ne se réinitialise pas automatiquement après. Si vous devez appeler get ups plusieurs fois, cette variable doit être réinitialisée manuellement. Alors allons jeter un oeil à l'exemple ici. Donc je déclare ma variable pour jouer avec et je fais écho à ce que la variable OPD I Andy ? C' est réglé. Lorsque le script commence, je passe par les options et je fais écho à cette variable chaque fois que nous traversons la boucle. Donc, vous le verrez monter maintenant nous sommes passés cette boucle while et je vous donne cette même variable ici. Maintenant, nous essayons de refaire la même boucle sans réinitialiser l'orteil variable et ensuite nous verrons ce qui se passe. Alors exécutons les résultats ici. Mes options sont les mêmes. Ils sont vieux, valides, donc vous pouvez voir que nous commençons par un. Ensuite, nous allons à Ensuite, nous allons à trois et ensuite nous allons à cinq parce que le dernier a une option. Maintenant, nous essayons de refaire la même boucle sans la réinitialiser. Et vous pouvez voir que nous atteignons le dernier écho sans rien faire ici de la fin pendant que Lupus finit parce que nous ne l'avons pas réinitialisé. Souviens-toi, c'est toujours une bonne habitude. Une fois que vous avez fini d'utiliser upto get ups, réinitialisez
toujours cette variable à un
20. Le style Linux argile partie 3.2 (erreurs getopts): garder non, regardons obtenir des ups et des erreurs par défaut, message
d'erreur ou imprimé avec une option non valide ou argument d'option de désordre est rencontré. Donc, le script suivant ne fournit pas un argument pour l'option mien pour l'option F. Comme vous pouvez le voir ici, le code est très similaire à ce que nous avons vu avant que Nous affichons qui devrait avoir, ah, argument, et il n'a pas. Donc, exécutons descript ici et vous pouvez voir que nous avons,
ah, ah, erreur se plaignant de l'argument requis manquant si le premier caractère et la chaîne en tant que mode de silence de colonne est utilisé. Donc, ici, nous avons le même code, sauf que j'ai commencé avec un appel ici et les options sont les mêmes. Je manque les arguments pour l'option F. Donc, si je lance ce script ici, il ne se plaint pas à ce sujet. Si la variable o p. T err sauf zéro, aucun message ne sera imprimé même si vous n'utilisez pas le vote silencieux. Donc, je vais recommencer la même erreur. Je n'ai pas le mode silencieux, mais je l'ai dit. Euh oh, Petey, erreur à zéro. Donc, c'est exécuter ce script ici. Et même si je manque l'option et je ne suis pas Ah, en mode silencieux, il n'est toujours pas imprimé plus près quand une option invalide isse a trouvé que la valeur aurait une question Mark est placé dans le nom upped arguments est désactivé et un diagnostic messages imprimés par get ups. Le bloc de code fournira une option non valide Dash X, que nous pouvons voir ici. Maintenant, le code est de retour au même que ce que nous avions, sauf dans une déclaration de cas. Si mon O p. T est égal à un esprit de question, cela signifie
que nous avons rencontré une option non valide. Alors exécutons le script ici et maintenant nous voyons le message d'erreur imprimé par get ups et le message que j'ai imprimé dans l'instruction de cas. Donc, et si get ops est en mode silencieux, up target est défini sur le caractère d'option trouvé. Eso donnera un exemple rapide ici. Regardez le code rapidement, donc c'est le même code. Pourtant, je suis en mode silencieux quand j'ai rencontré l'erreur. Donc, les valeurs un point d'interrogation de OPD je vais imprimer O p t a r g, et vous verrez ce que nous entendons par ceci. Donc, voyez-vous, j'ai une option non valide. Des œufs. C' est la sa valeur. Il l'a stocké dur. Si un argument requis est manquant et get ops n'est pas silencieux, une question marque sa place dans le nom et opt fait valoir que les messages d'apparition et de diagnostic sont imprimés. Donc, dans le cas de bureau ici, OPD err est réglé à zéro. Nous ne sommes pas en mode silencieux. Je vais rencontrer cette question. Mark et moi allons imprimer la même variable O P t et o P. D a R g. Voyons
donc les résultats de cet argument manquant détecté. Obtenir aswell afficher un message d'erreur Donc vous voyez qu'il n'y a pas de section intérieure de valeur ici. Dernier point sur get ops une erreur si un argument requis est manquant et get ups est silencieux. Un nom placé colonise vers le haut Argus défini sur l'option trouvée et le message de diagnostic mourant n'est pas imprimé. Alors regardons ça pour que même assez juste, je mettrais cet orteil. On ne supprimerait que les messages d'erreur, mais nous sommes en mode silencieux, donc je regarde ou non le point d'interrogation, mais une colonne et j'imprime les mêmes messages d'erreur qu'avant afin que vous puissiez voir l'
argument manquant détecté obtenir obsolète. Pas cela jouer un message d'erreur, et nous savons que c'est l'option tiret F qu'il nécessite sur l'argument. Donc, dans la prochaine session de classe, nous allons regarder faire des menus avec Cilic intégré pour vous permettre de construire ce qu'
on appelle l' interface utilisateur de texte T u wy.
21. Créer des menus avec SELECT: bienvenue dans cette session ici, nous allons apprendre à faire des menus avec Selig intégré commande. Euh, non. description dans cette section produit ici des scripts interactifs, donc il doit être exécuté un terminal. Vous devez exporter vers le code. Euh, le select construit et le rend facile à afficher et le menu de la directive à l'utilisateur dans un destructeur d'interface de
ligne de commande . La structure est sélectionner mot dans moins, puis faire ce que vous devez faire et ensuite fait. Donc c'est un peu comme un moment. La liste de boucles est développée et une liste d'éléments a été générée à partir de celle-ci. L' extension est imprimée à l'erreur STD. Le descripteur de fichier numéro deux en raison de la nature interactive de descriptif doit être exporté. Jetons un coup d'oeil au code ici. Ainsi, le script suivant vous donnera un menu de tous les répertoires de votre répertoire personnel . Et après avoir fait une sélection, ce sera tous les fichiers dans ce répertoire. Donc, ce qui se passe est d'abord, nous faisons une boucle, puis nous sélectionnons le nom ici va être ce qu'elle était une variable. Voici notre liste. Donc, cette première section mettra tous les répertoires de votre répertoire personnel dans cette liste. Et puis nous ajoutons également le prix supplémentaire Quit. Nous commençons notre boucle do. Maintenant. Si la variable i r est égale à celle quittée, nous quittons. Sinon, nous allons est le contenu. Donc, nous allons exporter le disque dû aller sur une console et c'est une sélection simple. Donc, c'est tout le contenu de mon répertoire personnel. Répertoires plus anciens. Alors combattez, sélectionnez trois. Il dure le contenu de mon répertoire de documents. Et si j'en avais 14, ça démissionne. Descript sous-menus imbriqués instruction Select crée des sous-menus. Alors regardons ça ici. Donc, nous commençons la même chose, mais d'abord ici nous avons poussé le répertoire ou home. Ok, Push D est une meilleure alternative pour changer de répertoire dans le script. Ok, Bash garde des piles de vieux répertoires. Donc, ce que nous faisons, c'est que nous poussons votre répertoire personnel au-dessus de cette pile. La raison pour laquelle rediriger une slash deaths national est parce que chaque fois que vous appelez Posey ou Pop D, il imprimera la pile de répertoires sur les STD. Nous mettons donc notre propre répertoire en haut de la pile, puis Select Star. Aucun juste les répertoires tous les fichiers et nous avons quitté. La même chose ici. Si nous trouvons démissionner, nous quittons. S' il s'agit d'un répertoire, nous avons poussé un répertoire. En plus de cette pile, nous avons sélectionné sous d i r étoile et retour. Ok, si les sous-cheveux sont de retour, on casse la boucle. Donc, nous revenons dans notre boucle parentale ici. S' il s'agit d'un fichier, nous imprimons un contenu. Soyez prudent qui, alors que vous sélectionnez pour des exemples et fichier ou fichier binaire, peut imprimer une longue, longue période. Si c'est un répertoire, Eh bien, est-ce que le contenu de ce répertoire ? Cette année ne devrait pas se produire. Donc, jusqu'à ce qu'on revienne, ça se casserait. Et puis ça ferait apparaître le répertoire que nous avons poussé ici. Donc, si ce n'est pas un répertoire, s'il s'agit d'un fichier, nous ne pouvons tout simplement pas le contenu de celui-ci. Et à la fin de ce re pop notre propre répertoire re poussé au sommet. Alors exportons. Et ce serait Ah, voyons,
c' est l'année dernière. Sélectionne sous. Ok, alors exécutons le manuscrit Select Sept. Donc, c'est tout mon contenu à l'intérieur de mon répertoire personnel. Donc, si je vends comme 16 test que le fichier du destin H, il imprime le contenu. Si je pousse en dessous avec rien, il réimprime simplement le même Select Luke. Donc, si je devais entrer dans trois documents, j'ai entré ce répertoire et il en imprime le contenu. Donc si je vérifie le test, il y a h. C' est un autre dossier. Et si je regarde dans un autre répertoire numéro quatre, il m'imprime le contenu. Mais je suis toujours dans la même boucle. Donc, j'ai frais sept pour le dos et je suis de retour dans mon répertoire personnel, 20 pour quitter et le script est terminé. Donc c'est tout pour les cours de base et de débutants pour l'introduction au script sur Bash dans la prochaine session, je voudrais parler d'un projet que je voudrais que vous essayiez.
22. Le Projet: Parlons maintenant d'un projet pour pratiquer à peu près tout ce que vous avez appris. Ce que je vous propose de faire, c'est que je vous propose d'utiliser le script bash pour créer un gestionnaire de
fichiers ah très simple . Il n'a pas besoin d'avoir beaucoup de fonctionnalités. Vous pouvez choisir l'avenir comme vous le souhaitez. Et au fur et à mesure que nous avançons vers le sujet avancé de Mawr, nous allons développer ce script de gestionnaire de fichiers. J' ai donc inclus deux versions de ce gestionnaire de fichiers. Ils n'ont pas tous les deux la même fonctionnalité non plus. Eso je vais décrire la façon dont il est entré en mode ordre ici, donc cela a du sens pour vous. La première section de code que nous voyons ici s'appelle une exportation de script. Si vous voulez exporter cette version du gestionnaire de ferme, vous allez sur ce code et vous appuyez sur la fonction d'exportation Contrôle vous contrôlez C contrôler le fond, donc cela va exporter la couche entière. Regardons à l'intérieur. y a pas de code là-dedans. La seule chose est que celui-ci inclut une référence à l'autre section de code. La raison pour laquelle il a fait comme ça. C' est parce que c'est tout à fait un mode orig de script interactif n'est pas bon. C' est bon pour évaluer. Mais c'est là où plus complexe lorsque vous voulez faire des scripts interactifs. Donc, pour éviter les erreurs chacune de la section suivante ou chacune de la fonction. Ok, donc vous pouvez les regarder chacun et très, très séparés une façon isolée. Ils ne peuvent pas être évalués. Ils ne peuvent pas être exportés. Si vous voulez exporter votre exportation, celle-ci ici, qui fera référence à chacune des autres couches, je ne vous expliquerai pas exactement comment c'est fait, ce que vous entendez. Si vous avez des questions que vous voulez développer à ce sujet, rejoignez-moi sur mon groupe Facebook et postez à ce sujet. OK, c'est une autre version de descript. Il utilise Mawr pour sélectionner eso intégré fonction que nous avons parlé dans l'une des versions précédentes . Il a également une fonctionnalité différente où il est autorisé à renommer un fichier. Donc, je vais vous laisser passer par ces codes ici, vous
donner quelques idées et trouver un script pour faire Un gestionnaire de fichiers simple n'a pas besoin d' avoir beaucoup de fonctionnalités. Hum, si vous avez besoin d'aide, notre clarification me rejoignez-moi sur mon billet de groupe Facebook là-bas. S' il y a des questions sur mes fonctions. Je vous le décrirai volontiers. Mais je voudrais vous laisser un exercice de votre propre jugement pour un peu et poster votre projet sur mon échelle. Section Projet Cerda Merci d'avoir suivi ce cours et,
euh, euh, j'espère que vous me rejoindrez dans tous les futurs cours pour Lennox.