Tout d'abord, je voudrais m'excuser, puisque vendredi dernier je n'ai pas pu écrire le message, donc aujourd'hui, j'ajouterai un supplément pour rattraper la journée perdue. 🙂
Extension d'accolade
En espagnol, l'expansion des touches me semble être une fonction inspirée par Coquille C, cela génère des combinaisons entre les caractères qui sont entrés à l'intérieur des accolades, l'ordre qu'il utilise est de gauche à droite. Ce n'est pas du tout compliqué, mais c'est une option qui sera très utile dans nos visites guidées de GNU / Linux.
exemple:
$ echo a {1,2,3} a1 a2 a3
Lorsqu'il est utilisé avec des virgules (,) génère des combinaisons entre la valeur a et les valeurs à l'intérieur des accolades. S'il n'y avait aucune valeur en dehors des clés, elle n'afficherait qu'une seule fois chaque valeur que la clé contient.
$ echo {a, b, c} abc
Son utilisation n'est pas du tout complexe, il existe d'autres exemples plus courants comme la création de nombreux répertoires dans un dossier
$ mkdir ~ / Jobs / {un, deux, trois, quatre, cinq}
Cela crée cinq dossiers dans le dossier des travaux, c'est comme entrer une commande à la fois. Création des 5 répertoires.
Il y a une expansion de deux points .. cela crée une série de nombres ou de caractères qui vont de la valeur initiale à la valeur finale, n'utilisez pas de nombres avec des lettres.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} #Je pense que je n'obtiendrai jamais habitué à cette couleur bleue en lettre
On peut gagner du temps en créant un cycle en
# Au lieu d'écrire $ for ((i = 1; i <= 5; i ++)); do echo "Mon numéro $ i"; done Mon numéro 1 Mon numéro 2 Mon numéro 3 Mon numéro 4 Mon numéro 5 #Enregistrer le code en utilisant l'expansion des accolades. $ pour i dans {1..5}; do echo "Mon numéro $ i; done Mon numéro 1 Mon numéro 2 Mon numéro 3 Mon numéro 4 Mon numéro 5 #Bien sûr, il est valide à utiliser bien que la sortie soit différente. $ echo" Mon numéro "{1..5} Mon numéro 1 Mon numéro 2 Mon numéro 3 Mon numéro 4 Mon numéro 5
Eh bien, je pense que le concept est clair, haha maintenant je vais seulement commenter qu'il est combinable et imbriqué.Qu'est-ce que je veux dire par là?
Avec combinable auquel on peut joindre une ou plusieurs clés
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Avec l'imbrication comme beaucoup l'imaginent, vous pouvez utiliser des clés d'extension dans des clés d'extension
$ echo {a, c {1..3}, d} a c1 c2 c3 d
Et enfin de Bash RIEN il est possible d'augmenter les valeurs.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
C'est tout pour aujourd'hui, alors merci de me lire les gens 🙂
Extra
Comment créer un bac local
Quand je dis un coffre local je veux dire un répertoire dans lequel nous avons nos propres scripts et il est possible de les exécuter comme une simple commande ...
Pour y parvenir est relativement simple, la première chose à faire est de créer un répertoire dans lequel nous enregistrerons les scripts.
mkdir ~ / .bin # Dans cet exemple, il sera masqué
Maintenant, nous avons notre dossier pour enregistrer les scripts mais cela ne fonctionnera pas tant que nous n'aurons pas ajouté le chemin du nouveau .bin à $ PATH
Pour cela, le fichier est édité bash_profile, et la ligne est ajoutée.
export PATH = $ PATH: ~ / .bin
Et voila ça suffit pour créer un bac local, bien sûr il demandera des permissions root si nécessaire pour un exemple on écrit un script rapide.
#! / bin / bash echo "Salut $ 1, comment vas-tu?"
Enregistrez-le sous le nom de Salut
Le script reçoit l'autorisation d'exécution et il ne suffira que de l'appeler depuis le terminal
$ hello wada #Ceci affichera le message Hello wada, comment vas-tu?
Donc, avec cette astuce rapide, vous pouvez exécuter vos scripts plus rapidement
C'est tout pour aujourd'hui les gens qui vont bien 🙂
PS Désolé pour les erreurs s'il y en a, mes yeux se ferment déjà hahaha 😀
Je suis dans le numéro bash depuis longtemps et je n'avais pas compris les extensions d'accolades, merci.
A propos de l'astuce du chemin, Fedora par défaut fait quelque chose comme ça mais dans "~ / .local / bin", regardez un extrait du bash_profile que j'ai apporté à Jessie.
CHEMIN = $ CHEMIN: $ HOME / .local / bin: $ HOME / bin
exportation PATH
J'ai quelques inquiétudes:
1. Comment l'amener à me donner deux intervalles avec une expansion par points; âges {1..24,55..90} et que j'élargisse les âges de 1 à 24 et continue avec 55 à XNUMX ans. comme je l'ai fait, cela n'a pas fonctionné. Parce que?
2. Si je veux que la première valeur soit nulle et que je continue avec la numérotation:
wget : http://manga.favorito /image http://manga.favorito/imagen1
J'ai essayé la manière suivante mais wget n'a pas obtenu: http://manga.favorito/imagen{, 1..42} Selon moi, je devrais laisser le prénom sans numéro et continuer avec la numérotation de 1 à 42 mais ce n'était pas comme ça. Parce que?
Vous avez raison, certaines distributions ont ou avaient un .bin mais c'est pour que tout le monde puisse comprendre et voir qu'il est possible de le faire dans n'importe quelle distribution: D, Merci de votre visite.
Très bien très bien pour ces apports de connaissances au monde Linux et à sa sécurité, un vendredi j'espère avoir pu lire comment formater une clé USB dans un terminal et graver une image iso DVD / CD de n'importe quel système libre dans un terminal.
Merci pour vos paroles frère 😀 Je promets que vendredi prochain je ferai ce post. Et je dois en dire plus sur la personnalisation de Vim hahaha mais je ne voulais pas qu'ils pensent que cela engloberait seulement Vim.
Excellent article terminal, le meilleur que j'ai lu depuis longtemps, comptant plusieurs blogs qui publient des tutoriels de ce style. Merci beaucoup!!
Merci beaucoup 😀 J'essaierai de suivre.
Excellent conseil de la poubelle locale!
Salutations!
Excellent, super qu'il vous soit utile, merci beaucoup de passer frère 😀
Très bon! Aucune idée à ce sujet. Merci 🙂
Vous êtes le bienvenu frère grâce à vous d'avoir pris le temps de le lire 😀
J'ai quelques inquiétudes:
1. Comment l'amener à me donner deux intervalles avec une expansion par points; âges {1..24,55..90} et que j'élargisse les âges de 1 à 24 et continue avec 55 à XNUMX ans. comme je l'ai fait, cela n'a pas fonctionné. Parce que?
2. Si je veux que la première valeur soit nulle et que je continue avec la numérotation:
wget : http://manga.favorito/imagen http://manga.favorito/imagen1
J'ai essayé la manière suivante mais wget n'a pas obtenu: http://manga.favorito/imagen{, 1..42} Selon moi, je devrais laisser le prénom sans numéro et continuer avec la numérotation de 1 à 42 mais ce n'était pas comme ça. Parce que?
* Désolé mais j'ai mis le premier message comme réponse et c'était faux dans certaines parties
1.- Votre logique est fausse, vous devez l'imbriquer hahaha essayez avec
$ echo {{1..24},{55..90}}
2.- Identique au précédent ...
$ echo "URL"{,{1..42}}
Ne t'inquiète pas, mon frère, nous sommes là pour s'entraider 🙂
Pour remplacer le for par echo, cela ressemblerait à ceci
echo "Mon numéro" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
mais je préfère printf
printf "I, I% d \ n" {1..5}
et utiliser le même concept d'expansion clé
atte
jvk85321
Comment mettez-vous les boîtes à bornes ????
atte
jvk85321
Tester si la balise de code fonctionne
hehe
Pour remplacer le for par echo, cela ressemblerait à ceci
echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’
pero prefiero printf
printf “Mi numero %d\n” {1..5}
et utiliser le même concept d'expansion clé
atte
jvk85321
Il me reste quelques bugs mais ça a marché
Je suis vivant maluco
Pardon pour deranger
atte
jvk85321
Hahaha tu t'es répondu mais si c'est entre les étiquettes
sans espaces ...
Et sur la substitution du car il n'est pas nécessaire de faire autant de pipe hahahaha assez avec:
echo -e "Mi numero "{1..5}"\n\b"
Pour être honnête, printf est le meilleur moyen d'imprimer du texte dans des scripts, il est plus portable mais par tradition, il utilise l'écho.
Je prends les espaces! hahahahaha
voyons maintenant 😀
Putain c'est "moins que" code "plus grand que" "moins de" / code "plus grand que" hahahaha
Le problème qui fait écho -e n'est pas standard, il ne fonctionne donc pas sur tous les systèmes.
Sort aussi en désordre
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Et avec ça
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Je pense que le second présente mieux le résultat, hahaha
atte
jvk85321
Ces étiquettes sont un aehehe décevant, voyons si elles fonctionnent maintenant
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Et avec ça
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Je pense que le second présente mieux le résultat, hahaha
atte
jvk85321
Bref, laisse les espaces entre les lignes, c'est pourquoi je déteste le html, hahahaha
Excellent! Je tape des pieds haha
Je ne savais pas que les clés pouvaient être imbriquées, puisque je n'ai jamais essayé de les utiliser non plus, cela économise vraiment beaucoup de code et c'est aussi plus lisible de cette façon. Je vous remercie!
Merci à toi pour mon frère de passage, je suis heureux que ce soit utile
Vous êtes les bienvenus, c'est pour cela que nous sommes ici, pour partager et apporter des idées. Je ne sais pas programmer, j'ai juste fait quelques choses dans Bash et publié des scripts que j'ai fait dans deux articles. Je pense que savoir cela peut rendre le code plus facile à comprendre.