Posté par Marotte ⛧ .
En réponse au journal Java 9 est dehors.
Évalué à 3.
Dernière modification le 01 octobre 2017 à 14:29.
[ -d $REP ] || mkdir $REP
Je ne comprends pas la différence (fonctionnelle) que ça peut faire avec un simple mkdir $REP ?
Il faudrait effectivement mettre des guillemets doubles autour de $REP, c’est une chaîne, pas un entier, donc la valeur peut inclure des espaces et il faut dans ce cas éviter qu’elle soit splittée en N tokens...
Sinon moi aussi en shell je préfère écrire des trucs comme : [ ... ] && ... ou [ ... ] || ..., en regroupant éventuellement à l’aide d’accolades, plutôt qu’utiliser le mot clé if, c’est juste une question de concision. Ce n’est en rien cryptique. On peut également utiliser la commande test implicitement (à la place du crochet ouvrant) c’est tout aussi limpide.
Et puis, $REP c'est quoi ? Une simple chaîne, ou une liste de fichiers/répertoires ?
J’aurais appelé la variable $REPS si c’était une liste (aka "tableau" en shell) :) Je fais d’ailleurs pareil en Python, une variable « au pluriel », c’est une liste (ou un set, bref, un itérable...), je trouve ça plus plaisant que préfixer chaque variable avec son type : l_truc, i_machin, etc... (ou je sais ma méthode présente des inconvénients, pour les cas équivoques j’utilise le préfixage ou bien je trouve un synonyme qui termine pas par un s au singulier...)
Et comment se comporte mkdir si tu lui passes plusieurs répertoires ? Tout ça, un expert shell va le savoir sans avoir besoin d'aller consulter man ;
Un expert ? Si tu sais pas comment se comporte mkdir avec plusieurs arguments je dirais que tu n’as même pas le niveau basique pour utiliser un shell *NIX, tu devrais même pas avoir à relire les scripts de quelqu’un d’autre, non ?
Et puis... Je ne suis ni un expert ni un débutant, la commande man je l’utilise sans retenu, je vois vraiment pas pourquoi je devrais me farcir la mémoire avec toutes les options de toutes les commandes... et souvent j’ouvre le man simplement pour vérifier que ma mémoire est bonne...
là où un développeur java va préférer itérer sur une liste et tester pour chaque répertoire ce qui se passe, et comment se comporter en cas d'erreur.
C’est tout a fait possible en shell, comme avec n’importe quel langage, c’est en rien une obligation d’appeler une seule fois mkdir _o_
En Java aussi je suppose que tu as le choix entre itérer sur la liste ou bien passer la liste directement à la fonction de base (built-in) qui crée les répertoires.
[^] # Re: AH ah ah ...
Posté par Marotte ⛧ . En réponse au journal Java 9 est dehors. Évalué à 3. Dernière modification le 01 octobre 2017 à 14:29.
Je ne comprends pas la différence (fonctionnelle) que ça peut faire avec un simple
mkdir $REP?Il faudrait effectivement mettre des guillemets doubles autour de $REP, c’est une chaîne, pas un entier, donc la valeur peut inclure des espaces et il faut dans ce cas éviter qu’elle soit splittée en N tokens...
Sinon moi aussi en shell je préfère écrire des trucs comme :
[ ... ] && ...ou[ ... ] || ..., en regroupant éventuellement à l’aide d’accolades, plutôt qu’utiliser le mot cléif, c’est juste une question de concision. Ce n’est en rien cryptique. On peut également utiliser la commandetestimplicitement (à la place du crochet ouvrant) c’est tout aussi limpide.J’aurais appelé la variable $REPS si c’était une liste (aka "tableau" en shell) :) Je fais d’ailleurs pareil en Python, une variable « au pluriel », c’est une liste (ou un set, bref, un itérable...), je trouve ça plus plaisant que préfixer chaque variable avec son type : l_truc, i_machin, etc... (ou je sais ma méthode présente des inconvénients, pour les cas équivoques j’utilise le préfixage ou bien je trouve un synonyme qui termine pas par un s au singulier...)
Un expert ? Si tu sais pas comment se comporte mkdir avec plusieurs arguments je dirais que tu n’as même pas le niveau basique pour utiliser un shell *NIX, tu devrais même pas avoir à relire les scripts de quelqu’un d’autre, non ?
Et puis... Je ne suis ni un expert ni un débutant, la commande man je l’utilise sans retenu, je vois vraiment pas pourquoi je devrais me farcir la mémoire avec toutes les options de toutes les commandes... et souvent j’ouvre le man simplement pour vérifier que ma mémoire est bonne...
C’est tout a fait possible en shell, comme avec n’importe quel langage, c’est en rien une obligation d’appeler une seule fois mkdir _o_
En Java aussi je suppose que tu as le choix entre itérer sur la liste ou bien passer la liste directement à la fonction de base (built-in) qui crée les répertoires.