Shell de misère

Fermé
m4ni4k - 10 juin 2009 à 01:07
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 11 juin 2009 à 10:49
Bonjour,

Si je fais ça:
bash -c "sed /^De/\!d\;s/^Description:\ // /var/lib/apt/lists/*ease"

j'obtiendrai ceci:
Medibuntu packages for Ubuntu Jaunty 9.04
Ubuntu Jaunty 9.04
Ubuntu Jaunty Security
Ubuntu Jaunty Updates


Tandis que si je fais cela:
sh -c "sed /^De/\!d\;s/^Description:\ // /var/lib/apt/lists/*ease"

j'obtiendrai plutôt ceci:
Medibuntu packages for Ubuntu Jaunty 9.04
Ubuntu Jaunty Security
Ubuntu Jaunty Updates
Ubuntu Jaunty 9.04


A un moment, j'ai pensé que le bourne shell traitait les fichiers en fonction de leur inode.
J'ai voulu vérifier par cette commande:
ls -li /var/lib/apt/lists/*ease

En fait, très clairemment ce n'est pas le cas. je ne comprends pas!
En attendant, j'aimerais savoir si l'on peut contraindre le bourne shell pour qu'il se comporte à la façon du bourne again shell, en traitant les données des fichiers par ordre alphabétique, en fonction de leur nom??
A voir également:

4 réponses

mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
10 juin 2009 à 01:38
Bah tu peux le garantir avec un sort, non ?
bash -c "sed /^De/\!d\;s/^Description:\ // /var/lib/apt/lists/*ease" | sort

Bonne chance
0
Effectivement, je pourrais. =)
Merci du conseil!

C'est quand même curieux que ce ne soit pas le comportement par défaut.
d'ailleurs, ça ne nous dit toujours pas quelle est la logique du comportement par défaut!?

C'est vraiment le genre de truc qui me choque quelque part!
Est-ce que sed y est pour quelquechose?
J'vous raconte même pas les autres problèmes, comme par exemple ces scripts (lié au modprobe) qui freezent intégralement sous jaunty mais qui passent sans sourciller sous hardy et qui passent également sous jaunty en enchainant délicatement ces mêmes lignes de code freezantes via le terminal et non pas massivement depuis leur fichier!?!

Pourquoi aussi est-ce que quand je boot un liveCD ubuntu hardy ou jaunty avec les préférences francophones, la console sera en qwerty alors que si je boot les mêmes versions en mode TORAM=yes (+ <Alt-SysRq-e> final), cette petite contrariété semble avoir été corrigée sous jaunty.
C'est déjà un bon début, mais pourquoi n'est-ce pas corrigé en boot standard, d'autant plus que la manipulation pour booter une ubuntu en la copiant dans la ram n'est pas officellement supportée par canonical?

Enfin que du bonheur quoi!
Moi qui pensait innocemment que linux était l'outil de précision par excellence...
On est encore loin du compte, même s'il faut reconnaitre que les erreurs de conception ou plus simplement le manque d'information de la couche hardware ne doit pas toujours faciliter les choses.
Bref, je crains parfois de n'avoir encore découvert que la partie visible de l'iceberg et de ne pas être du tout au bout de mes peines!

Ceci étant dit, je vous souhaite une agréable journée!
;-)
0
Très mauvaise idée le sort!!!
Dans ce cas de figure, c'était envisageable, mais dès qu'on travaille sur plusieures données à la fois, bonjour les mauvaises surprises!
Effectivement:
sh -c "sed /^D/\!d /var/lib/apt/lists/*ease"|sort

est peut-être = à ça:
bash -c "sed /^D/\!d /var/lib/apt/lists/*ease"|sort

mais n'est clairemment pas = à ceci:
bash -c "sed /^D/\!d /var/lib/apt/lists/*ease"

Tu vois comme on se retrouve vite sur une mauvaise piste!
Enfin bon, je n'ai rien contre l'utilisation de bash (encore que, il a aussi ses caprices) mais ça ne m'empêchera pas de m'étonner du comportement plus que douteux du shell traditionnel.
C'est quand même le shell, merde quoi!
:/
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783 > m4ni4k
11 juin 2009 à 10:49
Poste tes messages en bas du fil de discussion s'il te plait. Pour le sort il faut bien évidemment le mettre dans les deux versions pour avoir un comportement homogène.

Étonnamment quand tu ne précises pas de tri, il les met un peu dans l'ordre qu'il veut. Est-ce si surprenant si tu ne lui a pas dit de trier ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
10 juin 2009 à 08:14
Salut,

Extrait du man bash :
Il y a quelques différences subtiles de comportement entre bash et les versions traditionnelles 
de sh, principalement à cause des spécifications POSIX.

L'utilisation des alias peut avoir des conséquences inattendues.

Les commandes internes et les fonctions de l'interpréteur ne peuvent pas être suspendues/relancées.

Les commandes composées et les suites de commandes de la forme « a ; b ; c » ne sont pas gérées 
élégamment lors d'une interruption de processus. En cas de suspension d'un processus, l'interpréteur 
exécute immédiatement la commande suivante. Il suffit de placer cette suite de commandes entre 
parenthèses pour la forcer à créer un sous-interpréteur, qui, lui, pourra être suspendu en bloc.

Les commandes à l'intérieur de la substitution de commande $(...) ne sont pas analysées avant la tentative 
de substitution. Cela retardera l'affichage de messages d'erreurs pendant un certain temps après que la commande 
a été saisie. Par exemple, des parenthèses qui ne concordent pas, même à l'intérieur de commentaires, 
provoqueront des messages d'erreur lorsque la structure sera lue.

Les variables de type tableau ne peuvent pas (encore) être exportées.
;-))
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
10 juin 2009 à 13:33
Pourquoi aussi est-ce que quand je boot un liveCD ubuntu hardy ou jaunty avec les préférences francophones, la console sera en qwerty

Si tu parles des consoles (ctrl alt f1...f6) il faut bien voir que la plupart des utilisateurs utilisent simplement un terminal :-) Il reste à mon avis possible de faire un :
loadkeys fr


J'vous raconte même pas les autres problèmes, comme par exemple ces scripts (lié au modprobe) qui freezent intégralement sous jaunty mais qui passent sans sourciller sous hardy et qui passent également sous jaunty en enchainant délicatement ces mêmes lignes de code freezantes via le terminal et non pas massivement depuis leur fichier!?!

Bah si ce n'est pas les mêmes noyaux et pas les mêmes modules ce n'est pas vraiment comparable. D'une version à l'autre certains modules peuvent même changer de nom (cf par exemple les modules lirc) ! Si ton programme marche dans un contexte A mais pas un contexte B, il faut modifier petit à petit le contexte A pour trouver quelle aspect du contexte B fait tout planter.

Par exemple dans ton cas, commence par tester en mettant le même noyau etc... Là comme ça à froid, c'est difficile de te répondre. Ca peut être intéressant aussi pendant que tu lances ton script de regarder dans une console des choses comme :
tail -f /var/log/messages

Bref sans un minimum d'information, à part dire "ça ne marche pas" difficile d'avancer :-)

Moi qui pensait innocemment que linux était l'outil de précision par excellence...

Attention à ne pas faire l'amalgame entre linux... et ubuntu :-) Les gens qui font avancer Ubuntu font un super job, le problème c'est que les dernières release sortent alors qu'elles ne sont pas encore complètement mûres... Après ce n'est pas forcément uniquement de leur faute.
0
Bien entendu, la commande loadkeys a déjà sa petite ligne dans son petit script, mais ça ne m'enlève pas cette sale sensation de devoir utiliser ce qui s'apparente à des rustines, avant même d'avoir commencer à utiliser le système en lui-même, même si c'est évident que je n'utilise que rarement cette console.

Ca ne m'inspire pas du tout confiance, c'est ça qui est triste.
Et gnome, putain! vas y déjà pour désactiver les effets à la con autrement qu'avec ta souris à la con.
un petit metacity --replace, ouais super... pour bien rajouter de la pagaille, mais à part ça quoi d'autre???

C'est comme le fait de devoir tuer le NetworkManager d'entrée de jeu tellement il fout plus le bordel qu'autre chose. Et que dire de pulseaudio!
Puis un jour, une distrib marche nickel avec un certain modèle de carte graphique et pas l'autre, le lendemain ,avec la révision de la distrib, c'est tout l'inverse.
En réalité, je vis très mal le fait qu'un chipset aussi répandu que le G965 d'intel soit si problématique.

Et d'accord je ne devrais pas faire d'amalgame entre linux et ubuntu, mais quand même, c'est vraiment pas la plus discrète des distribs quoi, il y a quand même une solide structure derrière tout ça!

Désolé, mais je m'attendais quand même à un peu plus de rigueur ou de transparence!
Non, il faut presque autant glaner des infos à droite et à gauche qu'avec les OS de Kro$oft pour un résultat presque aussi approximatif, sinon plus encore dans certains cas.
Bon, je ne vai pas trop me plaindre, c'est quand même bien que ça existe, mais au bout du compte, je suis quand même plus désillusionné que comblé!
C'est vraiment regrettable!
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
10 juin 2009 à 20:50
mais ça ne m'enlève pas cette sale sensation de devoir utiliser ce qui s'apparente à des rustines,

Bof... C'est juste du paramétrage sur une feature qui n'est pas sensée servir, mais bon dans le fond tu as raison. Tu peux remonter le bug auprès d'ubuntu :
https://launchpad.net/ubuntu

un petit metacity --replace, ouais super... pour bien rajouter de la pagaille, mais à part ça quoi d'autre???

Quelle idée d'utiliser ubuntu si tu ne veux pas du kikoolol. Mets une debian ?

C'est comme le fait de devoir tuer le NetworkManager d'entrée de jeu tellement il fout plus le bordel qu'autre chose. Et que dire de pulseaudio!

Rien ne t'oblige à utiliser network-manager. Personnellement je ne l'utilise jamais je travaille directement dans /etc/network/interfaces. Pour pulseaudio c'est clair que c'est pas top, mais ça fait depuis un moment qu'il le traîne ce n'est pas une grande nouvelle.

En réalité, je vis très mal le fait qu'un chipset aussi répandu que le G965 d'intel soit si problématique.

Moi je pense surtout que tu t'es trompé de distribution. Si tu ne veux pas être victime du syndrome ubuntu qui consiste à mettre plein de features pas encore tout à fait matures, il faut mettre une debian. En tout cas ça ne sert à rien de te plaindre sur CCM d'une part parce qu'on ne maintient pas ubuntu.

En ce qui me concerne c'est les raisons que tu énonces qui font que j'utilise principalement des debian (qui sont d'ailleurs devenues aussi simple à installer que des ubuntu).

Et d'accord je ne devrais pas faire d'amalgame entre linux et ubuntu, mais quand même, c'est vraiment pas la plus discrète des distribs quoi, il y a quand même une solide structure derrière tout ça!

Bah ouais mais ça n'a aucun rapport. Dans un cas c'est les programmes qui sont critiqués, dans l'autre ce sont les choix de versions et de paquet. Forcément quand tu mets une distribution qui veut utiliser les versions les plus récentes (et donc pas les plus éprouvées) il ne faut pas être étonné d'avoir des mauvaises surprises de temps en temps.

Accessoirement tu peux également participer à l'amélioration des distributions linux qui te tiennent à cœur. J'ai un peu de mal à entendre des "linux ca déconne etc... etc..." sachant qu'une bonne partie des gens (empaqueteurs, développeurs, membres des forums etc...) prennent sur leur temps libre pour te fournir un produit certes pas parfait mais globalement de bonne qualité.

D'autant plus que la majorité des problèmes que tu évoques sont des problèmes de configuration (comprendre des problèmes utilisateurs, pas des problèmes système). Autant dire que si tu prends 5 min pour régler ça ce n'est rien à côté des milliers d'heures qui ont été passé à développer le linux que tu as lancé.

Non, il faut presque autant glaner des infos à droite et à gauche qu'avec les OS de Kro$oft pour un résultat presque aussi approximatif, sinon plus encore dans certains cas.

Euh tu trouves la plupart des informations ici :
http://doc.ubuntu-fr.org/
http://forum.ubuntu-fr.org/

(... et accessoirement ici : https://www.commentcamarche.net/ ). Faudrait pas pousser quand même...

C'est vraiment regrettable !

Qu'y puis-je ? Essaye une debian peut être que ca te conviendra plus.
0
En fait, ce qu'il faut que tu comprennes c'est que le problème ne vient vraiment pas d'une distrib en particulier, mais plutôt d'une logique de fonctionnement.
Ce n'est pas pour rien que j'ai ciblé mon malheur sur le shell!
Soi-disant, on peut tout régler en ligne de commande, ouais vive la théorie, mais dans la pratique les choses sont loines d'être évidentes.
J'apprécierais d'avoir un système clair sans devoir trop chipoter car des chipotages risquent toujours d'induire par eux-mêmes d'autres soucis.
LINUX est un système super mal articulé. j'en suis bien attristé mais c'est la stricte réalité.
Déjà rien que tous ces micros fichiers répartis ici et là, ça me gavait déjà chez Kro$oft, mais ça me parait finalement presque moins confus.
Il en va de même pour la gestion des services et de tout ce foutoir.
L'exemple du NetworkManager est quand même éloquent.
Au départ, tu te dis que tu vas utiliser bien sagemment l'interface utilisateur, qui est à priori la pour t'aider à ne pas faire n'importe quoi, pour t'apercevoir en réalité que t'aurais mieux fais directemment de ne jamais l'utiliser. (et toutes les distribs utilisent cette imposture d'aide à la configuration).
Je ne parle même pas de la galère après, sur les sites officiels comme sur les sites d'amateurs plus ou moins éclairés (au point d'être parfois complètement illuminés), pour savoir quelle est la synthaxe la plus appropriée pour paramètrer ce bête fichier interfaces et par quel jeu de sudo ifconfig, ifup, ifdown ou iwconfig tu dois démarrer ou arrêter ton interface.
Un truc qui devrait être tout con aussi, mais qui s'avère loin de l'être, essaye un peu de faire joujou avec la position de tes icones sur ton bureau dans le fichier
$HOME/.nautilus/metafiles.
Déjà c'est quoi ces noms de merde "x-nautilus-desktop:%2F%2F%2F.xml"
Mieux, essaye de bloquer leurs emplacements. Bonne chance.
Je viens d'évoquer plusieurs perturbations avec lesquelles j'ai appris à vivre, mais dont l'origine me semble presque aussi obscure que celle de notre univers, alors qu'il s'agit d'un système totalement libre et pas du tout propriétaire, c'est ça qui est plutôt désorientant.
Je me suis déjà promené sur launchpad ou dans les docs d'ubuntu, de véritable fourbi, avec une ou 2 informations intéressantes au milieu, mais faut vraiment être très habile pour trouver ce que l'on recherche vraiment.
Heureusement que je suis un adepte du trial and error, sinon ça fait bien longtemps que j'aurais renoncé.

J'ai une debian 5.00 live qui attend depuis un bon moment (mars) que je la triture dans tous les sens, mais j'attache énormément d'importance à ce que les choses se passent déjà correctement avec les distribs plus grand public.
D'autant plus que ce sont quasiment les mêmes outils, les même noyaux, et les mêmes versions d'applis qui se retrouvent sur l'un comme sur l'autre.
J'aimerais me construire mes repères sur une distrib largement utilisée et entretenue en permanence.
Ce n'est pas que la pure debian est un peu molle du genou et n'est pas assez utilisée, mais j'ai l'impression que l'enjeu est plus grand pour ubuntu, même s'il s'adresse à un public probablement moins exigeant.
J'ai déjà suffisamment l'impression de m'éloigner d'une certaine standardisation en utilisant linux, je n'ai que moyennement envie de m'en éloigner davantage en commencant à utiliser des iceweasel et consort, même si dans le fond, je serais très fier de n'utiliser plus qu'eux et que je serais encore plus fier de pouvoir démontrer à mon entourage qu'il n'y a plus la moindre raison de se coltiner des solutions moins libres.
En attendant, pour l'instant, je ne te dis pas comment parfois je me sens un peu masochiste de faire tourner un linux, pour y faire tourner un wine qui lui même fait tourner un winhex (en mode win98 dans wine), qui, bien que linux friendly, réagit tout boiteusement.

J'adorerais aussi pouvoir consacrer du temps à l'investigation des paquets de type redhat et principalement à la Fedora surtout que la dernière vient tout juste de sortir, et que c'est quand même cette distro là que Linus torvald en personne préconise.
Mais voila, séduit par le concept du liveCD, auparavant je m'étais vaguement familiarisé avec knoppix.
Dans la lignée, j'ai trouvé opportun de me familiariser avec ubuntu, même s'il y a pleins de trucs qui m'horripile, y'aura certainement d'autres trucs qui m'horripileraient également dans les autres distribs.
Puis, il semblerait que pour l'audio pro, les realtime kernel et tout ça, les environnent debians soient légèremment plus développés.

Donc voila, oui il y aussi des tonnes de chouettes principes, mais en règle générale, c'est assez peu intuitif et plutôt fastidieux à faire fonctionner fluidement, sans accros, parcqu'il ne faut pas perdre de vue que si c'est plutôt agréable d'avoir un système malgré tout assez robuste, il ne faut pas que ça s'arrête là et qu'il ne soit bon qu'à le regarder comme un poisson rouge dans son bocal, il faut aussi qu'il nous assure un minimum de satisfaction lors de son utilisation tout en limitant un maximum nos frustrations, sinon à quoi bon?
0