Ça mériterait d’être posté dans les « journaux », voire proposé comme « dépêche » (suivant la capacité d’accueil ; bouton « Proposer un contenu »). Les forums de ce site sont plutôt dédiés à poser des questions ; les « journaux » ont plus de visibilité et les « dépêches » encore plus.
Par ailleurs, ça mériterait aussi un effort de mise en forme afin d’améliorer la lisibilité, ne serait-ce que de passer des lignes.
Accessoirement, ce serait sympa que le lieu apparaisse dans le titre ou vers le début (en donnant éventuellement une indication pour ceux qui ne connaissent pas, comme « à l’est de la Région parisienne »).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Maintenant qu’on sait ce que la « Promotion Sociale », qu’est‐ce qu’une « période » ?
C’est juste un cours ou il y a une subtilité ?
En France, l’information qu’on donne, c’est plutôt le nombre d’heures total. Le nombre de cours et la durée de chaque (1 h 30, 2 h, 3 h, 4 h…) sont omis.
À mon sens, l’indication du nombre d’heures manque vraiment…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Il suffit d’éviter de la bétonner et de la laisser, elle se débrouille très bien toute seule, sans avoir la « chance » d’être « gérée » par les chasseurs.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Par contre, une fois ton script terminé, tu reviens sur ton environnement d'origine (qui est aussi un environnement bash) mais dans lequel aucune commande n'a été exécutée.
exec remplace le shell courant (celui du script, pas celui d’origine) par la commande qu’on lui passe en paramètre (ici, la valeur de $SHELL).
Donc normalement, en remplaçant #!ban/bash par #!/bin/bash (avec un i et un / en plus au début), la version 3 devrait fonctionner avec deux bémols :
le shell sera celui du script et pas celui d’origine ($SHELL indique le shell actuel, donc ici, celui d’exécution du script — ou alors il faut réécrire le script dans un langage qui ne soit pas un shell pour que la variable SHELL ne soit pas affectée) ;
quand on sortira du shell, on retombera sur le shell d’origine.
Je ne vois pas de manière d’éviter ces inconvénients, à part, plutôt que de créer un script, de définir une fonction dans le .bashrc (pour bash) :
chemin (){read -p "Entrez un nouveau chemin : " chemin
cd$chemin}
ATTENTION : des erreurs dans le .bashrc pourraient causer des soucis ! Mieux vaut mettre au point dans un autre fichier en utilisant la commande source pour tester et ne recopier dans le .bashrc qu’ensuite.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
En tout cas, quand on utilise xargs, on a intérêt à utiliser find avec l’option -print0 et xargs avec l’option -0 pour éviter des surprises s’il y a des fichiers dont les noms contiennent des espaces.
Sinon, avec tail comme commande finale, ce ne serait pas trop grave, mais le jour ou c’est rm…
Je connais quelqu’un qui a essayé, il a eu des problèmes…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
en faisant par exemple :
nb=$( echo "$var" | cut -d' ' -f1 )
C’est suffisamment peu trivial pour mériter d’être explicité à un débutant.
Tu sembles avoir pris ma question pour une critique contre toi, mais c’était une vraie question. J’aurais pour louper un moyen simple d’obtenir le premier élément.
S’il n’y en a pas (tu m’excuseras, j’espère, de ne pas considérer comme simple l’appel à des commandes tierces), c’est par contre encore une tare du shell POSIX.
Bash, lui, supporte de vrais tableaux ; malheureusement, il n’est pas partout (même s’il est sur la plupart des distributions Linux, hormis les mini-distributions basées sur Busybox).
et pour un vieux système comme solaris ou hpux par exemple tu utilises des anti-quotes `.
Si on choisit /bin/sh pour la portabilité et qu’on n’est pas sûr de ne pas tomber sur un vieux shell, mieux vaut éviter autant que possible tous les « ajouts modernes », donc utiliser des anti-quotes.
sur la fin ta réponse ( fin de second message )c'est : moi je le fait en perl
C'est un peu hors sujet non ?
Je n’ai pas dit le contraire ; c’est une digression qui ne s’adresse pas particulièrement à l’auteur de la question, dont je présume que le but est de se familiariser avec le shell. C’est pour ça que je n’ai pas développé.
En shell, tu passes ton temps à essayer d’éviter des écueils (par exemple, les variables interprétées à chaque appel ; si elles peuvent contenir des espaces ou des caractères bizarres, tu as intérêt à les quoter correctement ; je connais un sysadmin pourtant expérimenté qui a effacé un tas de fichiers qu’il n’aurait pas dû à cause de ça) et à contourner les limitations (par exemple, les fonctions ne peuvent pas retourner de valeur hormis un code d’erreur).
peux-tu m'expliquer quelle est ta solution concrète dans ce cas ?
Si tu la veux, la voilà :
#!/usr/bin/perl -wusestrict;my@nb=@ARGV;if(!@nb)# En contexte scalaire, @nb rend le nombre d’éléments du tableau @nb.# On peut même l’utiliser comme booléen.{print"Nombres (séparés par des espaces : ";@nb=split' ',<STDIN>;}@nbordie"Recherche du minimum ; il faut indiquer des nombres !\n";my$min=shift@nb;foreach(@nb){$_<$minand$min=$_;}print"Minimum : $min\n";
et tant qu’on y est, l’équivalent en shell (pas tout à fait : la version Perl supporte des nombres décimaux) :
#!/bin/shif[$#=0];thenecho -n "Nombres (séparés par des espaces) : "read nbs
set -- $nbsfiif[$#=0];thenecho"Recherche du minimum ; il faut indiquer des nombres !\n"exitfimin=$1while[$# -gt 0];do[$1 -lt $min]&&min=$1shiftdoneecho"Minimun : $min"
Bon, dans le cas présent, la version shell n’est pas tellement plus compliquée, mais on est dans un cas simple : pas de valeurs pouvant contenir des espaces, pas besoin de plus d’un tableau…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
C'est simplement la syntaxe glob (et ça n'a vraiment rien de nouveau).
J’avais mis « nouveauté » entre guillemets et précisé que j’ai lu certains man en entier il y a « longtemps ». Penses-tu que ça existait déjà sous SunOS en 1992 (j’ai par exemple dû lire le man d’awk en entier à l’époque, peut-être pas depuis ; pour celui de find, je ne sais plus) ?
Je soupçonne que c’est un ajout inspiré des expressions rationnelles et si j’ai raison, je serais curieux de savoir de quand il date.
C'est aussi pourquoi un manuel ne va pas lister les constructions possibles, il suffit de dire que c'est un "glob pattern" (ceci dit, je viens de jeter un coup d'œil sur le man de find et ils parlent de "shell pattern" partout, sous-entendant "glob pattern", sauf à un endroit où ils disent bien "glob pattern") et les gens peuvent se renseigner sur la syntaxe ailleurs.
Ça n’est pas complètement garanti : il y a ça aussi comme syntaxe en bash (voir la section « Développement des chemins » du man, il y a d’autres possibilités intéressantes) :
ls /usr/share/fonts/*/*.@(o|t)tf | wc -l
516
OK, pour cet exemple, ça n’est pas utile par rapport aux crochets, mais ça l’est pour des portions de taille supérieure à un.
Bon, ça ne fonctionne qu’avec l’option extglob (shopt -s extglob pour l’activer).
Mais du côté de find, ça n’a pas l’air supporté :
find /usr/share/fonts -iname '*.(o|t)tf'| wc -l
0
et avec d’autres shells (par exemple dash), on peut aussi se brosser.
Par contre,
find ~ -maxdepth 1 -iname '*bash*'| wc -l
5
mais
ls ~/*bash* 2> /dev/null | wc -l
0
D’après le man de find :
Dans ces motifs, et contrairement à l'expansion des noms de fichiers de l'interpréteur de commandes, un « . » initial peut correspondre au motif « * » […] (c'est une évolution de findutils-4.2.2 […]).
Cela dit, si on active l’option dotglob pour bash :
Ah, je viens de remarquer que le shell utilisé est sh (#!/bin/sh). Du coup, à moins que ce soit bash quand même (c’est le cas sur certaines distributions), pas de tableau.
Les autres solutions doivent fonctionner quand même avec la plupart des sh (/bin/sh n’est pas le même shell suivant la distribution ou le système). Peut-être pas avec le plus indigent (parmi ceux que je connais, celui d’OpenIndiana : un vieux ksh notoirement bogué et en deçà des spécifications POSIX, conservé pour ne pas casser des scripts qui comptent sur son comportement).
Le seul intérêt (mais réel) d’utiliser sh est la portabilité, dans le sens où tout système de type Unix aura un /bin/sh, alors qu’il aura peut-être ksh mais pas bash ou l’inverse. C’est dommage, dans la mesure où les fonctionnalités communes aux shells évolués disponibles sur chaque système sont plus importantes que celles de leurs /bin/sh, mais il n’y a pas de chemin commun pour ces shells évolués.
Pour ma part, dans un environnement que je maîtrise, je fais directement du Perl. Ça m’évite de mauvaises surprises quand les besoins augmentent. Par exemple, dans l’exemple actuel, on se retrouve finalement à devoir traiter des nombres décimaux et on s’aperçoit alors que le shell ne gère que les entiers…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Au lieu de d'initialiser nb manuellement
initialise le avec le premier nombre de ta liste saisie par l'utilisateur.
Quelle est ta manière simple de récupérer juste le premier élément malgré bash (je dis « malgré », parce que bash, c’est comme Perl en moins puissant mais plus compliqué, même s’il est bien moins indigent que le Bourne shell dont il descend) ?
Parce que je vois l’affectation de toute la liste aux variables $1, $2… avec
set -- $var
(intérêt supplémentaire : on peut ensuite reprendre le script prévu pour traiter les arguments), l’affectation de toute la liste à un tableau avec
$tab=($var)
(ensuite ${tab[2]} pour accéder par exemple au troisième élément, $tab donnant le premier élément), mais récupérer juste le premier élément, je ne vois pas trop…
À la réflexion, on peut récupérer juste le premier élément avec
${var%% *}
Un peu cryptique quand même pour un débutant (enfin c’est du bash…) ; explication : c’est une substitution qui rend le contenu de la variable allégé du premier espace et de tout ce qui suit.
De plus il manque une instruction dans ta structure de contrôle.
Effectivement.
Par contre, il y a aussi des instructions superflues : nb=$nb, on peut aussi sortir le shift du if then else fi dans le premier script et supprimer le else dans la foulée.
Tant qu’on y est, on peut utiliser && plutôt que if then fi et le contenu de la boucle while (du premier script) se réduit à :
do[$1 -lt $nb]&&nb=$1shiftdone
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
OK, ça ne fait pas longtemps non plus que j’ai appris que bash supporte les crochets dans ses motifs et manifestement, c’est le cas de find aussi.
À chaque fois que je tombe sur un truc comme ça, je me demande si je l’ai loupé quand j’ai lu le man ou si c’est une « nouveauté » (enfin depuis que j’ai lu le man ; j’ai lu plus ou moins en entier le man des commandes les plus courantes, mais ça peut faire… longtemps — accessoirement, s’il y avait moins d’options, le man était d’autant plus court donc rapide à lire).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Ça peut être intéressant de regarder ce qu’indique smartctl pour savoir si ce sont juste les données qui ont été endommagées ou si le disque est en défaillance physique :
smartctl -a /dev/sda
S’il y a des évènements d’erreurs indiqués ou un nombre à plus d’un chiffre dans les attributs Current_Pending_Sector et Offline_Uncorrectable ou autre chose que - dans la colonne WHEN_FAILED, ça sent le roussi.
Si le disque est défectueux et qu’il y a des données à récupérer dessus, le mieux de recopier ce qui est sauvable sur un autre disque (au moins aussi grand, USB ou branché sur un adaptateur USB) avec GNU ddrescue (il y a un autre ddrescue, peut-être pas mauvais, mais avec des options complètement différentes) en deux passes (la première récupère en gros sans insister sur les endroits problématiques, la deuxième insiste sur ces endroits pour réduire la taille des trous). En supposant le deuxième disque vierge (ça efface tout le contenu ! sinon, il faut le monter et utiliser comme cible un fichier dedans et surtout pas /dev/sdb) :
Ensuite, sur le deuxième disque, si la table de partition n’est pas lisible (avec fdisk -l /dev/sdb), essayer de la récupérer avec testdisk, puis vérifier les partitions avec (pour la première) e2fsck -f /dev/sdb1
D’un autre côté, si la table de partitions du premier disque est lisible et que tu sais laquelle contient des données (supposons sda1 s’il n’y a pas de /home séparé), ça peut être intéressant de copier juste cette partition avec ddrescue dans un fichier :
Ça devrait être suffisant pour ton usage mais ne néglige pas le confort de l'écran et évite les dalles TN.
C’est un fort bon conseil, surtout pour de la retouche photo, mais un portable 17″ neuf avec une dalle full HD IPS à moins de 600 € TTC et avec 8 Go de mémoire, ça risque d’être difficile à trouver, surtout si on espère aussi qu’il soit à peu près fiable…
Peut-être en reconditionné ou en occase, encore faut-il que ce soit réellement moins cher que le neuf (ce n’est pas toujours le cas pour du pas trop vieux).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
J’hésiterais avant de commander un Asus si c’est pour utiliser longtemps (disons plus de trois ans).
Le dernier que j’ai vu avait la carte son aux abonnés absents et le contrôleur disque l’a rejointe. C’est moins pratique…
Par ailleurs, ils ont tendance à souder la mémoire d’origine sur la carte mère, au moins sur leurs modèles bas de gamme, ce qui empêche d’atteindre ultérieurement la capacité maximale du processeur. Cela dit, c’est moins grave si tu en prends un avec 8 Go d’origine.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
wc a certainement été écrit par des anglophones : ils ne mettent pas d’espace avant les ponctuations. Du coup, wc compte comme mot tout ce qui est séparé par des espaces (ou retour à la ligne), c’est une simplification qui marche (généralement) en anglais…
Bon, on peut toujours s’en servir pour compter les lignes et les octets.
Je me suis dit que ce serait intéressant de voir si un traitement de texte s’en sort mieux. LibreOffice ne compte pas une ponctuation isolée pour un mot, mais il considère « l’apostrophe » comme un seul mot.
Note : « Ploumanacʼh », par contre, est un seul mot, ce qui ne simplifie pas (note : idéalement, ce n’est pas la même apostrophe qu’il faut mettre dans les deux, U+2019 et U+02BC).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Puis le message suivant apparait
UNCOMPRESSION ERROR
Ça fait penser à une erreur de lecture d’un fichier compressé.
Si tu as branché ta clé sur une prise en façade d’une machine fixe, essaie plutôt sur une prise arrière. Directement soudées à la carte mère, celles-ci se montrent plus fiables (pas de mauvais contact ni de perte due au câblage), surtout avec certaines clés USB.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Bien vu. Habituellement, j’utilise more et je n’ai jamais dû lire le man de less (ou pas en entier)…
Reste pour bat l’intérêt de permettre de parcourir un code source avec la coloration syntaxique et de sortir plus rapidement (q) qu’avec vim (ESC : q Entrée) ou emacs (Ctrl+X Ctrl+C).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
« Je vois mal un patron », je l’ai compris comme « je ne vois aucun patron », alors que c’était plutôt « je vois mal un patron lambda ».
je précise que certains employeurs font bien ce genre de choses, […] mais globalement c'est une minorité.
Je suppose et je l’espère. Mais si ça reste impuni, ça pourrait faire tache d’huile, et en tout cas, c’est une concurrence déloyale par rapport aux entreprises qui respectent leurs employés, ou au moins le droit.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Plusieurs de ces commandes ont pour l’un de leur principaux avantages une sortie en couleur (pertinente).
C’est bien, mais on lance la commande, le résultat dépasse la taille d’un terminal, on se dit qu’on va la piper dans un more ou dans un less en forçant les couleurs avec --color=always, et là, c’est le drame !
less affiche les codes d’échappements. more affiche bien les couleurs (il se contente peut-être de les laisser passer), mais compte les codes d’échappement pour la longueur des lignes et coupe les lignes avant même la moitié pour une sortie d’exa !
Là, je me dis « c’est con, les développeurs auraient surtout dû prévoir un remplacement de more ». Et puis, je me dis « sait‐on jamais, essayons bat »…
Et bien bat fait le boulot de more (ils auraient dû l’appeler « bore » ☺)… mais en supportant correctement les couleurs !
Accessoirement, il ajoute un cadre et des numéros de lignes, qu’on peut toutefois éviter avec l’option -p.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Pas très visible ici
Posté par Arthur Accroc . En réponse au message Découverte et initiation au langage python sur Linux et Windows. Évalué à 6.
Ça mériterait d’être posté dans les « journaux », voire proposé comme « dépêche » (suivant la capacité d’accueil ; bouton « Proposer un contenu »). Les forums de ce site sont plutôt dédiés à poser des questions ; les « journaux » ont plus de visibilité et les « dépêches » encore plus.
Par ailleurs, ça mériterait aussi un effort de mise en forme afin d’améliorer la lisibilité, ne serait-ce que de passer des lignes.
Accessoirement, ce serait sympa que le lieu apparaisse dans le titre ou vers le début (en donnant éventuellement une indication pour ceux qui ne connaissent pas, comme « à l’est de la Région parisienne »).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Quelle est la marque du clavier?
Posté par Arthur Accroc . En réponse au message [RÈSOLU] Comment configurer un clavier inhabituel ?. Évalué à 3.
Bonjour,
Es-tu sûr que le clavier est dans son état sorti d’usine ?
N’est-il pas possible que quelqu’un ait échangé les touches avant que tu n’aies ce clavier ?
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Signification de « période » pour les non-belges ?
Posté par Arthur Accroc . En réponse à la dépêche Se former à Linux en promotion sociale en 2018-2019. Évalué à 3. Dernière modification le 04 novembre 2018 à 04:08.
Bonjour,
Maintenant qu’on sait ce que la « Promotion Sociale », qu’est‐ce qu’une « période » ?
C’est juste un cours ou il y a une subtilité ?
En France, l’information qu’on donne, c’est plutôt le nombre d’heures total. Le nombre de cours et la durée de chaque (1 h 30, 2 h, 3 h, 4 h…) sont omis.
À mon sens, l’indication du nombre d’heures manque vraiment…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# La censure a frappé !
Posté par Arthur Accroc . En réponse au journal Le roi est mort, Vive le roi !. Évalué à 2.
La « photo de cul » a apparemment été supprimée…
La dignité du chat est sauvée !
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Le problème…
Posté par Arthur Accroc . En réponse au journal Enfin un maire qui a la tête sur les épaules. Évalué à 3.
Le problème, c’est bien l’Homme.
Même les radiations sont moins néfastes à la nature (en images).
Il suffit d’éviter de la bétonner et de la laisser, elle se débrouille très bien toute seule, sans avoir la « chance » d’être « gérée » par les chasseurs.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Sous-shell
Posté par Arthur Accroc . En réponse au message Script bash. Évalué à 4. Dernière modification le 02 novembre 2018 à 17:55.
Dans la commande
< echo remplace l’entrée standard par le contenu d’un fichier nommé echo du répertoire courant.
Le message d’erreur indique logiquement qu’il n’y en a pas.
La bonne commande est
en tenant compte de la remarque tout-à-fait pertinente de wismerhill (on ne pense jamais assez à quoter).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Sous-shell
Posté par Arthur Accroc . En réponse au message Script bash. Évalué à 3.
exec remplace le shell courant (celui du script, pas celui d’origine) par la commande qu’on lui passe en paramètre (ici, la valeur de $SHELL).
Donc normalement, en remplaçant #!ban/bash par #!/bin/bash (avec un i et un / en plus au début), la version 3 devrait fonctionner avec deux bémols :
Je ne vois pas de manière d’éviter ces inconvénients, à part, plutôt que de créer un script, de définir une fonction dans le .bashrc (pour bash) :
ATTENTION : des erreurs dans le .bashrc pourraient causer des soucis ! Mieux vaut mettre au point dans un autre fichier en utilisant la commande source pour tester et ne recopier dans le .bashrc qu’ensuite.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Attention avec xargs
Posté par Arthur Accroc . En réponse au message parcourir une arbo. Évalué à 4.
En effet.
En tout cas, quand on utilise xargs, on a intérêt à utiliser find avec l’option -print0 et xargs avec l’option -0 pour éviter des surprises s’il y a des fichiers dont les noms contiennent des espaces.
Sinon, avec tail comme commande finale, ce ne serait pas trop grave, mais le jour ou c’est rm…
Je connais quelqu’un qui a essayé, il a eu des problèmes…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: modifie l'initialisation
Posté par Arthur Accroc . En réponse au message Passer de paramètres à valeurs saisie par l'utilisateur... Évalué à 3.
Lapin compris.
C’est suffisamment peu trivial pour mériter d’être explicité à un débutant.
Tu sembles avoir pris ma question pour une critique contre toi, mais c’était une vraie question. J’aurais pour louper un moyen simple d’obtenir le premier élément.
S’il n’y en a pas (tu m’excuseras, j’espère, de ne pas considérer comme simple l’appel à des commandes tierces), c’est par contre encore une tare du shell POSIX.
Bash, lui, supporte de vrais tableaux ; malheureusement, il n’est pas partout (même s’il est sur la plupart des distributions Linux, hormis les mini-distributions basées sur Busybox).
Si on choisit /bin/sh pour la portabilité et qu’on n’est pas sûr de ne pas tomber sur un vieux shell, mieux vaut éviter autant que possible tous les « ajouts modernes », donc utiliser des anti-quotes.
Je n’ai pas dit le contraire ; c’est une digression qui ne s’adresse pas particulièrement à l’auteur de la question, dont je présume que le but est de se familiariser avec le shell. C’est pour ça que je n’ai pas développé.
En shell, tu passes ton temps à essayer d’éviter des écueils (par exemple, les variables interprétées à chaque appel ; si elles peuvent contenir des espaces ou des caractères bizarres, tu as intérêt à les quoter correctement ; je connais un sysadmin pourtant expérimenté qui a effacé un tas de fichiers qu’il n’aurait pas dû à cause de ça) et à contourner les limitations (par exemple, les fonctions ne peuvent pas retourner de valeur hormis un code d’erreur).
Si tu la veux, la voilà :
et tant qu’on y est, l’équivalent en shell (pas tout à fait : la version Perl supporte des nombres décimaux) :
Bon, dans le cas présent, la version shell n’est pas tellement plus compliquée, mais on est dans un cas simple : pas de valeurs pouvant contenir des espaces, pas besoin de plus d’un tableau…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Motifs…
Posté par Arthur Accroc . En réponse à la dépêche Firefox 63. Évalué à 2.
C’est donc que je l’ai loupé à l’époque et aussi depuis.
Pfff… il y a des quart de siècles comme ça…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Motifs…
Posté par Arthur Accroc . En réponse à la dépêche Firefox 63. Évalué à 2.
J’avais mis « nouveauté » entre guillemets et précisé que j’ai lu certains man en entier il y a « longtemps ». Penses-tu que ça existait déjà sous SunOS en 1992 (j’ai par exemple dû lire le man d’awk en entier à l’époque, peut-être pas depuis ; pour celui de find, je ne sais plus) ?
Je soupçonne que c’est un ajout inspiré des expressions rationnelles et si j’ai raison, je serais curieux de savoir de quand il date.
Ça n’est pas complètement garanti : il y a ça aussi comme syntaxe en bash (voir la section « Développement des chemins » du man, il y a d’autres possibilités intéressantes) :
OK, pour cet exemple, ça n’est pas utile par rapport aux crochets, mais ça l’est pour des portions de taille supérieure à un.
Bon, ça ne fonctionne qu’avec l’option extglob (shopt -s extglob pour l’activer).
Mais du côté de find, ça n’a pas l’air supporté :
et avec d’autres shells (par exemple dash), on peut aussi se brosser.
Par contre,
mais
D’après le man de find :
Cela dit, si on active l’option dotglob pour bash :
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # sh
Posté par Arthur Accroc . En réponse au message Passer de paramètres à valeurs saisie par l'utilisateur... Évalué à 5.
Ah, je viens de remarquer que le shell utilisé est sh (#!/bin/sh). Du coup, à moins que ce soit bash quand même (c’est le cas sur certaines distributions), pas de tableau.
Les autres solutions doivent fonctionner quand même avec la plupart des sh (/bin/sh n’est pas le même shell suivant la distribution ou le système). Peut-être pas avec le plus indigent (parmi ceux que je connais, celui d’OpenIndiana : un vieux ksh notoirement bogué et en deçà des spécifications POSIX, conservé pour ne pas casser des scripts qui comptent sur son comportement).
Le seul intérêt (mais réel) d’utiliser sh est la portabilité, dans le sens où tout système de type Unix aura un /bin/sh, alors qu’il aura peut-être ksh mais pas bash ou l’inverse. C’est dommage, dans la mesure où les fonctionnalités communes aux shells évolués disponibles sur chaque système sont plus importantes que celles de leurs /bin/sh, mais il n’y a pas de chemin commun pour ces shells évolués.
Pour ma part, dans un environnement que je maîtrise, je fais directement du Perl. Ça m’évite de mauvaises surprises quand les besoins augmentent. Par exemple, dans l’exemple actuel, on se retrouve finalement à devoir traiter des nombres décimaux et on s’aperçoit alors que le shell ne gère que les entiers…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: modifie l'initialisation
Posté par Arthur Accroc . En réponse au message Passer de paramètres à valeurs saisie par l'utilisateur... Évalué à 6.
Quelle est ta manière simple de récupérer juste le premier élément malgré bash (je dis « malgré », parce que bash, c’est comme Perl en moins puissant mais plus compliqué, même s’il est bien moins indigent que le Bourne shell dont il descend) ?
Parce que je vois l’affectation de toute la liste aux variables $1, $2… avec
(intérêt supplémentaire : on peut ensuite reprendre le script prévu pour traiter les arguments), l’affectation de toute la liste à un tableau avec
(ensuite ${tab[2]} pour accéder par exemple au troisième élément, $tab donnant le premier élément), mais récupérer juste le premier élément, je ne vois pas trop…
À la réflexion, on peut récupérer juste le premier élément avec
Un peu cryptique quand même pour un débutant (enfin c’est du bash…) ; explication : c’est une substitution qui rend le contenu de la variable allégé du premier espace et de tout ce qui suit.
Effectivement.
Par contre, il y a aussi des instructions superflues : nb=$nb, on peut aussi sortir le shift du if then else fi dans le premier script et supprimer le else dans la foulée.
Tant qu’on y est, on peut utiliser && plutôt que if then fi et le contenu de la boucle while (du premier script) se réduit à :
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Motifs…
Posté par Arthur Accroc . En réponse à la dépêche Firefox 63. Évalué à 7.
Oh un UUOO (useless use of -or) ! ;-)
En fait, on peut simplement faire :
OK, ça ne fait pas longtemps non plus que j’ai appris que bash supporte les crochets dans ses motifs et manifestement, c’est le cas de find aussi.
À chaque fois que je tombe sur un truc comme ça, je me demande si je l’ai loupé quand j’ai lu le man ou si c’est une « nouveauté » (enfin depuis que j’ai lu le man ; j’ai lu plus ou moins en entier le man des commandes les plus courantes, mais ça peut faire… longtemps — accessoirement, s’il y avait moins d’options, le man était d’autant plus court donc rapide à lire).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Pour vérifier si le disque est défectueux et récupérer les données
Posté par Arthur Accroc . En réponse au message error: failure reading sector 0x86a from 'hd0'. Évalué à 4.
Bonjour,
Ça peut être intéressant de regarder ce qu’indique smartctl pour savoir si ce sont juste les données qui ont été endommagées ou si le disque est en défaillance physique :
S’il y a des évènements d’erreurs indiqués ou un nombre à plus d’un chiffre dans les attributs Current_Pending_Sector et Offline_Uncorrectable ou autre chose que - dans la colonne WHEN_FAILED, ça sent le roussi.
Si le disque est défectueux et qu’il y a des données à récupérer dessus, le mieux de recopier ce qui est sauvable sur un autre disque (au moins aussi grand, USB ou branché sur un adaptateur USB) avec GNU ddrescue (il y a un autre ddrescue, peut-être pas mauvais, mais avec des options complètement différentes) en deux passes (la première récupère en gros sans insister sur les endroits problématiques, la deuxième insiste sur ces endroits pour réduire la taille des trous). En supposant le deuxième disque vierge (ça efface tout le contenu ! sinon, il faut le monter et utiliser comme cible un fichier dedans et surtout pas /dev/sdb) :
Ensuite, sur le deuxième disque, si la table de partition n’est pas lisible (avec fdisk -l /dev/sdb), essayer de la récupérer avec testdisk, puis vérifier les partitions avec (pour la première) e2fsck -f /dev/sdb1
D’un autre côté, si la table de partitions du premier disque est lisible et que tu sais laquelle contient des données (supposons sda1 s’il n’y a pas de /home séparé), ça peut être intéressant de copier juste cette partition avec ddrescue dans un fichier :
Ensuite, le deuxième disque monté sur un autre ordinateur :
Bonne chance !
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: ldlc
Posté par Arthur Accroc . En réponse au message Ordinateur portable 17" Full HD sous Linux. Évalué à 3.
Je complète en ce qui concerne le processeur en précisant que c’est un processeur faible consommation prévu pour être monté sans ventilateur.
Par contre, pour ce qui est de la mémoire, il plafonne à 8 Go.
C’est un fort bon conseil, surtout pour de la retouche photo, mais un portable 17″ neuf avec une dalle full HD IPS à moins de 600 € TTC et avec 8 Go de mémoire, ça risque d’être difficile à trouver, surtout si on espère aussi qu’il soit à peu près fiable…
Peut-être en reconditionné ou en occase, encore faut-il que ce soit réellement moins cher que le neuf (ce n’est pas toujours le cas pour du pas trop vieux).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Asus
Posté par Arthur Accroc . En réponse au message Ordinateur portable 17" Full HD sous Linux. Évalué à 3.
Bonjour,
J’hésiterais avant de commander un Asus si c’est pour utiliser longtemps (disons plus de trois ans).
Le dernier que j’ai vu avait la carte son aux abonnés absents et le contrôleur disque l’a rejointe. C’est moins pratique…
Par ailleurs, ils ont tendance à souder la mémoire d’origine sur la carte mère, au moins sur leurs modèles bas de gamme, ce qui empêche d’atteindre ultérieurement la capacité maximale du processeur. Cela dit, c’est moins grave si tu en prends un avec 8 Go d’origine.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Pas de version patchée dans Debian Security?
Posté par Arthur Accroc . En réponse au journal demain soir on finit tard. Évalué à 5. Dernière modification le 17 octobre 2018 à 14:25.
Les « bonnes crèmeries », ce sont celles qui ont de la crème fraîche, non ?
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Aux chiottes wc
Posté par Arthur Accroc . En réponse au journal GoFr - Episode 02. Évalué à 3.
wc a certainement été écrit par des anglophones : ils ne mettent pas d’espace avant les ponctuations. Du coup, wc compte comme mot tout ce qui est séparé par des espaces (ou retour à la ligne), c’est une simplification qui marche (généralement) en anglais…
Bon, on peut toujours s’en servir pour compter les lignes et les octets.
Je me suis dit que ce serait intéressant de voir si un traitement de texte s’en sort mieux. LibreOffice ne compte pas une ponctuation isolée pour un mot, mais il considère « l’apostrophe » comme un seul mot.
Note : « Ploumanacʼh », par contre, est un seul mot, ce qui ne simplifie pas (note : idéalement, ce n’est pas la même apostrophe qu’il faut mettre dans les deux, U+2019 et U+02BC).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# À essayer
Posté par Arthur Accroc . En réponse au message Installation linux via usb. Évalué à 2. Dernière modification le 12 octobre 2018 à 17:52.
Bonjour,
Ça fait penser à une erreur de lecture d’un fichier compressé.
Si tu as branché ta clé sur une prise en façade d’une machine fixe, essaie plutôt sur une prise arrière. Directement soudées à la carte mère, celles-ci se montrent plus fiables (pas de mauvais contact ni de perte due au câblage), surtout avec certaines clés USB.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # TestDisk
Posté par Arthur Accroc . En réponse au message Disque externe WD Elements 2To ne monte pas. Évalué à 2.
Pour retrouver la ou les partition effacées, il y a TestDisk, probablement déjà empaqueté par ta distribution.
Tu devrais essayer d’abord avec EFI GPT comme type de table de partitions et si le résultat n’est pas probant avec Intel.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: C’est bat !
Posté par Arthur Accroc . En réponse au journal softs dev en Rust empaqueté pour Ubuntu & cie. Évalué à 2.
Bien vu. Habituellement, j’utilise more et je n’ai jamais dû lire le man de less (ou pas en entier)…
Reste pour bat l’intérêt de permettre de parcourir un code source avec la coloration syntaxique et de sortir plus rapidement (q) qu’avec vim (ESC : q Entrée) ou emacs (Ctrl+X Ctrl+C).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: C’est Free, mais c’est pas grave
Posté par Arthur Accroc . En réponse au journal Chaque été depuis 9 ans, Altran enclenche une procédure de licenciement contre un délégué syndical. Évalué à 3.
Ah, c’est sur le « un » qu’on s’est mal compris.
« Je vois mal un patron », je l’ai compris comme « je ne vois aucun patron », alors que c’était plutôt « je vois mal un patron lambda ».
Je suppose et je l’espère. Mais si ça reste impuni, ça pourrait faire tache d’huile, et en tout cas, c’est une concurrence déloyale par rapport aux entreprises qui respectent leurs employés, ou au moins le droit.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# C’est bat !
Posté par Arthur Accroc . En réponse au journal softs dev en Rust empaqueté pour Ubuntu & cie. Évalué à 10.
Plusieurs de ces commandes ont pour l’un de leur principaux avantages une sortie en couleur (pertinente).
C’est bien, mais on lance la commande, le résultat dépasse la taille d’un terminal, on se dit qu’on va la piper dans un more ou dans un less en forçant les couleurs avec --color=always, et là, c’est le drame !
less affiche les codes d’échappements. more affiche bien les couleurs (il se contente peut-être de les laisser passer), mais compte les codes d’échappement pour la longueur des lignes et coupe les lignes avant même la moitié pour une sortie d’exa !
Là, je me dis « c’est con, les développeurs auraient surtout dû prévoir un remplacement de more ». Et puis, je me dis « sait‐on jamais, essayons bat »…
Et bien bat fait le boulot de more (ils auraient dû l’appeler « bore » ☺)… mais en supportant correctement les couleurs !
Accessoirement, il ajoute un cadre et des numéros de lignes, qu’on peut toutefois éviter avec l’option -p.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # C’est Free, mais c’est pas grave
Posté par Arthur Accroc . En réponse au journal Chaque été depuis 9 ans, Altran enclenche une procédure de licenciement contre un délégué syndical. Évalué à 4.
Ah ? Tu as raté des trucs.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone