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
Je n’ai jamais dit ça.
Le lourd passif d’Orange (dont je n’ai malheureusement pas retenu tous les détails, mais j’ai par exemple retrouvé ça) me dissuade de passer chez eux. Peut-être cela s’est-il amélioré, mais jusqu’à quel point ?
Chez Free, ce sont les choix techniques fournis à l’utilisateur qui sont discutables. Chez Orange, c’est souvent l’implémentation qui a péché.
Autant il sera facile de voir si les choix techniques de Free s’améliorent, autant on pourra toujours douter de la sécurité de l’implémentation chez Orange.
Cela dit, tu as surtout parlé de problèmes passés chez Orange. Si tu es au courant de problèmes actuels, rien ne t’empêche de faire un journal, comme modr123… Un historique des problèmes passés pourrait être intéressant aussi.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Free a aussi longtemps traîné les pieds avant de mettre en place le chiffrement pour POP/IMAP, mais ça, quand même, ils ont fini par le faire.
Par contre, pour mettre à jour sa page web, c’est toujours FTP — pas de sftp ou FTPS — ou http (pas de https non plus !).
Évidemment, pour les consulter, pas de https.
Et dernièrement, Free s’est fait pointer comme un des gros acteurs à ne pas avoir mis en place le chiffrement des communications entre serveurs SMTP.
Manifestement, la sécurité des mots de passe et la confidentialité des données des utilisateurs, ce n’est pas leur priorité.
Cela dit, il y a une cohérence : si tu mets à jour ta page web à distance, et que tu te fais sniffer ton mot de passe, c’est moins grave qu’il soit stocké en clair chez Free…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Bon, je passe sur le bénéfice le plus évident, la suppression d’emplois (la lutte contre l’emploi est une priorité nationale, avec le succès que l’on sait).
Dernièrement, j’ai un peu traîné à payer ma facture EDF, donc je me suis dit que ce serait plus rapide en ligne (temps d’acheminement de la lettre, mais surtout temps de traitement du TIP). J’ai vu le site EDF… et j’ai décidé de payer par téléphone.
Bon, là où ça devient intéressant, c’est qu’après que j’ai payé, j’ai eu droit à un message du genre « si votre puissance a été réduite, elle sera rétablie dans tant de temps ».
Ce n’est pas possible avec un compteur traditionnel sans intervention de personnel EDF, mais en général, en cas de non paiement, l’EDF envoyait plutôt couper le courant.
Et là, on voit le progrès :
– avant, quand les pauvres n’arrivaient pas à payer leur facture en hiver, on envoyait un agent leur couper le courant, mais certains rechignaient à les laisser crever de froid dans le noir ;
– grâce au compteur Linky, on leur réduira leur puissance automatiquement ; comme ça, plus de problème avec ces sales agents EDF humanistes et les pauvres crèveront de froid, mais avec un peu de lumière pour pouvoir payer leur facture quand ils trouveront de quoi le faire (s’ils ne sont pas morts d’une pneumonie avant).
Un service public moderne !
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Je m'y suis déjà reprise à deux fois pour cette installation, la première fois je n'avais pas connecté de câble ethernet, je me suis retrouvée avec un Cinnamon qui plantait à l'ouverture et s'ouvrait en mode secours, pas de wifi et Firefox en Anglais.
Avec une installation connectée, il ne reste plus que ce soucis de police et seulement dans le menu et le tableau de bord.
Ce genre de mésaventure peut aussi faire penser à des fichiers corrompus.
Souvent, quand on a des fichiers corrompus, c’est que la mémoire est défectueuse.
Je ferais un test de mémoire (avec Memtest86+. De toute façon, c’est une précaution qui ne nuit pas (après des années de tranquillité en achetant des mémoires de marque, j’ai une Kingston qui est devenue défectueuse…).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Dans tous les éditeurs (pas que Kate), une tabulation n’est pas huit espaces (ou quatre, ou ce qu’on a choisi), mais un saut à la prochaine colonne multiple de huit (ou quatre, ou autre). C’est le principe.
Bon, tant qu’on ne fait qu’indenter avec, ça revient au même (et encore, pas si on met des lignes en commentaire), mais c’est quand on s’en sert pour aligner du code que c’est un peu plus fin (tant qu’on n’enlève ou n’ajoute pas un peu trop de caractères et que ça cause un saut de tabulation — faute des fameuses « fin de tabulations élastiques »).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
De manière à simplifier la vie des utilisateurs de serveurs beaucoup de distributions utilisent de UUID de type : UUID=aba14cd9-97d5-4bc5-8ae9-3bfc3a2b2f2e
Du coup, si tu changes un disque dur avec dd, ton système ne boutera plus du tout …
En général, c’est l’UUID de la partition qui est utilisée, et avec une copie brute avec un outil comme dd (je conseillerais GNU ddrescue, même si le disque d’origine ne présente pas d’erreurs, il est plus rapide que dd), il est conservé.
Note : on a fortement intérêt à ne pas se tromper entre la source et la destination.
Du coup, on monte le SSD, on fait une copie brute dessus, on arrête le PC, on démonte le disque dur, on reboote, et ça doit fonctionner.
Mais il semble à lire l’article que son auteur veut conserver le disque dur en plus du SSD. C’est là que ça se complique : deux partitions avec le même UUID, ça pose problème, surtout si c’est ce qu’on utilise pour monter le disque. En reformatant le disque dur juste après la copie sur SSD ou en changeant les UUID de ses partitions, ça doit éviter le souci.
Bon, si on ne fait pas une copie brute de tout le disque, mais juste des partitions, il faut comme tu le dis plus loin démarrer sur clé USB et réinstaller GRUB, ce qui rend l’opération moins simple.
Si GRUB « ne retrouve pas ses billes » avec le changement de disque, pour une raison ou pour une autre, on n’échappe pas non plus à sa réinstallation.
Cela dit, la copie brute a des limites : il faut que le SSD soit assez grand, il faut aussi que le disque dur ait été partitionné relativement récemment (sinon l’alignement des partitions ne conviendra pas à un SSD).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Ça m’a probablement moins choqué avec un C dans le sens habituel, pas tout seul et pas dans un cercle.
Zenitram a certainement raison sur la rareté d’empattements dans ce symbole.
Celui auquel je suis habitué (qu’il soit right ou left) est plutôt comme celui présenté par Wikipédia (copyright, copyleft) : deux cercles concentriques de même épaisseur avec celui du centre tronqué pour faire un C.
« 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
# Autres pistes…
Posté par Arthur Accroc . En réponse au journal GNU/Linux Manjaro ! + projet ARM à 300 € !?. Évalué à 4.
Comme distribution rolling release plus abordable qu’Arch Linux, il y a aussi openSUSE Tumbleweed.
Pour une salle info à petit budget, ça vaut peut-être le coup d’envisager LTSP.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Citron
Posté par Arthur Accroc . En réponse au journal Freenaute, ton mot de passe d'abonné est stocké en clair chez Free. Évalué à 6.
Fan de Free ou déçu d’Orange ?
Je n’ai jamais dit ça.
Le lourd passif d’Orange (dont je n’ai malheureusement pas retenu tous les détails, mais j’ai par exemple retrouvé ça) me dissuade de passer chez eux. Peut-être cela s’est-il amélioré, mais jusqu’à quel point ?
Chez Free, ce sont les choix techniques fournis à l’utilisateur qui sont discutables. Chez Orange, c’est souvent l’implémentation qui a péché.
Autant il sera facile de voir si les choix techniques de Free s’améliorent, autant on pourra toujours douter de la sécurité de l’implémentation chez Orange.
Cela dit, tu as surtout parlé de problèmes passés chez Orange. Si tu es au courant de problèmes actuels, rien ne t’empêche de faire un journal, comme modr123… Un historique des problèmes passés pourrait être intéressant aussi.
« 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 Freenaute, ton mot de passe d'abonné est stocké en clair chez Free. Évalué à 10.
Free a aussi longtemps traîné les pieds avant de mettre en place le chiffrement pour POP/IMAP, mais ça, quand même, ils ont fini par le faire.
Par contre, pour mettre à jour sa page web, c’est toujours FTP — pas de sftp ou FTPS — ou http (pas de https non plus !).
Évidemment, pour les consulter, pas de https.
Et dernièrement, Free s’est fait pointer comme un des gros acteurs à ne pas avoir mis en place le chiffrement des communications entre serveurs SMTP.
Manifestement, la sécurité des mots de passe et la confidentialité des données des utilisateurs, ce n’est pas leur priorité.
Cela dit, il y a une cohérence : si tu mets à jour ta page web à distance, et que tu te fais sniffer ton mot de passe, c’est moins grave qu’il soit stocké en clair chez Free…
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Utilisation réelle du compteur Linky
Posté par Arthur Accroc . En réponse au journal Compteur communiquant linky et collecte de la courbe de charge. Évalué à 2.
Bon, je passe sur le bénéfice le plus évident, la suppression d’emplois (la lutte contre l’emploi est une priorité nationale, avec le succès que l’on sait).
Dernièrement, j’ai un peu traîné à payer ma facture EDF, donc je me suis dit que ce serait plus rapide en ligne (temps d’acheminement de la lettre, mais surtout temps de traitement du TIP). J’ai vu le site EDF… et j’ai décidé de payer par téléphone.
Bon, là où ça devient intéressant, c’est qu’après que j’ai payé, j’ai eu droit à un message du genre « si votre puissance a été réduite, elle sera rétablie dans tant de temps ».
Ce n’est pas possible avec un compteur traditionnel sans intervention de personnel EDF, mais en général, en cas de non paiement, l’EDF envoyait plutôt couper le courant.
Et là, on voit le progrès :
– avant, quand les pauvres n’arrivaient pas à payer leur facture en hiver, on envoyait un agent leur couper le courant, mais certains rechignaient à les laisser crever de froid dans le noir ;
– grâce au compteur Linky, on leur réduira leur puissance automatiquement ; comme ça, plus de problème avec ces sales agents EDF humanistes et les pauvres crèveront de froid, mais avec un peu de lumière pour pouvoir payer leur facture quand ils trouveront de quoi le faire (s’ils ne sont pas morts d’une pneumonie avant).
Un service public moderne !
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: HiDPI
Posté par Arthur Accroc . En réponse au message Police de caractère déformée. Évalué à 2.
Ce genre de mésaventure peut aussi faire penser à des fichiers corrompus.
Souvent, quand on a des fichiers corrompus, c’est que la mémoire est défectueuse.
Je ferais un test de mémoire (avec Memtest86+. De toute façon, c’est une précaution qui ne nuit pas (après des années de tranquillité en achetant des mémoires de marque, j’ai une Kingston qui est devenue défectueuse…).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Tabulations
Posté par Arthur Accroc . En réponse au journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code. Évalué à 3.
Dans tous les éditeurs (pas que Kate), une tabulation n’est pas huit espaces (ou quatre, ou ce qu’on a choisi), mais un saut à la prochaine colonne multiple de huit (ou quatre, ou autre). C’est le principe.
Bon, tant qu’on ne fait qu’indenter avec, ça revient au même (et encore, pas si on met des lignes en commentaire), mais c’est quand on s’en sert pour aligner du code que c’est un peu plus fin (tant qu’on n’enlève ou n’ajoute pas un peu trop de caractères et que ça cause un saut de tabulation — faute des fameuses « fin de tabulations élastiques »).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Copie brute
Posté par Arthur Accroc . En réponse au journal Migrer Windows 10 d'un disque BIOS/MBR, vers un SSD en mode UEFI/GPT avec des logiciels libres. Évalué à 3.
En général, c’est l’UUID de la partition qui est utilisée, et avec une copie brute avec un outil comme dd (je conseillerais GNU ddrescue, même si le disque d’origine ne présente pas d’erreurs, il est plus rapide que dd), il est conservé.
Note : on a fortement intérêt à ne pas se tromper entre la source et la destination.
Du coup, on monte le SSD, on fait une copie brute dessus, on arrête le PC, on démonte le disque dur, on reboote, et ça doit fonctionner.
Mais il semble à lire l’article que son auteur veut conserver le disque dur en plus du SSD. C’est là que ça se complique : deux partitions avec le même UUID, ça pose problème, surtout si c’est ce qu’on utilise pour monter le disque. En reformatant le disque dur juste après la copie sur SSD ou en changeant les UUID de ses partitions, ça doit éviter le souci.
Bon, si on ne fait pas une copie brute de tout le disque, mais juste des partitions, il faut comme tu le dis plus loin démarrer sur clé USB et réinstaller GRUB, ce qui rend l’opération moins simple.
Si GRUB « ne retrouve pas ses billes » avec le changement de disque, pour une raison ou pour une autre, on n’échappe pas non plus à sa réinstallation.
Cela dit, la copie brute a des limites : il faut que le SSD soit assez grand, il faut aussi que le disque dur ait été partitionné relativement récemment (sinon l’alignement des partitions ne conviendra pas à un SSD).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Renversant !
Posté par Arthur Accroc . En réponse au journal Le symbole du copyleft. Évalué à 3.
Ça m’a probablement moins choqué avec un C dans le sens habituel, pas tout seul et pas dans un cercle.
Zenitram a certainement raison sur la rareté d’empattements dans ce symbole.
Celui auquel je suis habitué (qu’il soit right ou left) est plutôt comme celui présenté par Wikipédia (copyright, copyleft) : deux cercles concentriques de même épaisseur avec celui du centre tronqué pour faire un C.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone