1

Comment récupérer le type du processeur avec une commande bash ?

Je m'explique, je voudrais juste savoir si mon script tourne sur une installation 32 ou 64 bits, comment faire ?

J'ai vu que uname -r me renvoyait la version du kernel, qui contient sous Fedora un "ix86" ou un "x86_64", mais étant donné la forme de la chaine renvoyée, je ne peut pas faire un grep dessus (me semble-t-il).

Comment m'y prendre svp ?

Idéalement, je voudrais faire un truc :
if <commande magique> == "x86_64"
{
machin
}
else
{
truc
}
fi

vala. smile

2

pourquoi tu ne pourrais pas faire de grep dessus, elle a quelle forme la chaine ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

[Folco@folco ~]$ uname -r
2.6.29.4-167.fc11.x86_64
[Folco@folco ~]$

grep peut décomposer une chaine de caractères ? je savais pas, je croyais que ça ne faisait que renvoyer une ligne qui contient ce qu'on lui passe en argument. Je suis loin d'être au point là-dessus.
Et si je peux faire marcher grep sur cette chaine, la mthode est-elle fiable, idéalement sur les distribs Linux ou autres BSD ?

4

Il y a cut qui doit convenir, avec un point comme séparateur (je crois que le séparateur est défini dans une variable d'environnement, mais je ne suis plus très sûr)

5

bah grep te permet de déterminer si une chaine correspond à un motif donné, c'est exactement ce que tu veux faire ^^

il suffit que tu définisses tes deux motifs permettant de reconnaître "x86_64" et "ix86" puis, au choix, de tester le code de retour de grep ou de vérifier si sa sortie standard est non nulle.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

Euh sed, parait que c'est puissant (ie trop pour moi grin)
cut, j'ai déjà utilisé, en effet, je vais voir avec ça, merci. smile C'est universel sur les *nix ?
et il me semble que tu peux passer le séparateur que tu veux en argument à cut

(cross)

ah ben oué, bien vu Zephyr, t1 qu'est-ce que je suis balaize quand même triso
donc il faut que je fasse :
if uname -r | grep x86_64
{truc pour 64 bits}
else
{truc pour 32 bits}
fi

à la syntaxe bash près, je suis pas doué mais je vais lire des exemples ou la doc de if.

Merci !

7

Pen^2 (./4) :
(je crois que le séparateur est défini dans une variable d'environnement, mais je ne suis plus très sûr)

Ah non, c'est avec
d, --delimiter
Une variable d'environnement doit quand même exister, mais autant ne pas la changer puisqu'on peut s'en passer smile

cross avec Zephyr > oui, aussi, c'est pas faux smile

8

oui, merci de me rafraichir la mémoire, j'avais édité mais je me souvenait plus du switch smile

9

cross avec 5
Folco (./6) :
donc il faut que je fasse :
if uname -r | grep x86_64
{truc pour 64 bits}
else
{truc pour 32 bits} fi


oué ça doit donner ça
if test "`uname -r | grep x86_64`" != "" 
then
#64
else
#32
fi


ou
if [ "`uname -r | grep x86_64`" != "" ]
then
#64
else
#32
fi

vu que [ est un alias pour le programme test

mais je ne suis pas un spécialiste du bash, et j'ai rien pour tester embarrassed
(je crois qu'il vaut mieux utiliser $(commande) que `commande` mais je ne sais plus trop pourquoi sad)

10

la commande "arch" renvoie le type de processeur
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

11

j'aime le monde d'unix et sa rigueur légendaire grin

5naj
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

Au fait :
Folco (./6) :
Euh sed, parait que c'est puissant (ie trop pour moi biggrin.gif )

C'était trop lointain comme souvenir, j'ai édité de toute façon !
Folco (./6) :
cut, [...] C'est universel sur les *nix ?

Je ne sais pas.
Ah si, c'est POSIX visiblement :
http://fr.wikipedia.org/wiki/Cut_(commande_UNIX)

13

Zephyr (./11) :
j'aime le monde d'unix et sa rigueur légendaire grin

5naj

lol
C'est sympa le délimiteur de commandes dans ta console. C'est dû à quoi ?

14

bah j'ai juste configuré mon prompt, il faut juste utiliser un vrai shell (i.e pas bash) mais sinon c'est très simple à faire smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

OK merci. C'est propre en tout cas.
Tu conseilles quoi comme shell ? Moi je ne connais que le bash triso (et encore pas très bien grin)

16

oh je serais bien en mal de te conseiller quoi que ce soit, à part de rester sous Windows grin

perso j'utilise zsh, quand on prend le temps de le configurer il a un tas d'options très pratiques (la complétion contextuelle c'est vachement bien par exemple)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

Zephyr (./16) :
à part de rester sous Windows biggrin.gif

grin (t'inquiète pas pour ça grin)
Zephyr (./16) :
la complétion contextuelle

Ah oué, sympa, ça smile

18

ahah, le tunning de command line a la r0x0R grin


folco :

uname -r | cut -d "." -f 6


mais bon dans ton cas je recommande pas trop ca.
avatar
納 豆パワー!
I becamed a natto!!!1!one!

19

Pen^2 (./9) :

(je crois qu'il vaut mieux utiliser $(commande) que `commande` mais je ne sais plus trop pourquoi frown.gif )


D'après mon expérience, c'est le contraire: `commande` est mieux reconnu que $(commande), mais $(commande) supporte la récursion de commandes $(commande1 $(commande2)), pas `commande1 `commande2``

20

squalyl@box:~$ cat /etc/debian_version
5.0.1
squalyl@box:~$ arch
-bash: arch: command not found
squalyl@box:~$ uname -i
unknown
squalyl@box:~$ uname -p
unknown
squalyl@box:~$ rogntudju
-bash: rogntudju: command not found
squalyl@box:~$ uname -m
i686

21

Désolé pour le HS, mais
Zephyr (./16) :
(la complétion contextuelle c'est vachement bien par exemple)

Elle a quoi de mieux que Control+R en bash ? (pour savoir, hein... je trouve perso que Control+R est assez pourrave et limité, et ce que tu appelles complétion contextuelle n'est peut-être pas ce à quoi je pense).
avatar

22

Merci squalyl grin

23

PpHd (./19) :
Pen^2 (./9) :

(je crois qu'il vaut mieux utiliser $(commande) que `commande` mais je ne sais plus trop pourquoi frown.gif )


D'après mon expérience, c'est le contraire: `commande` est mieux reconnu que $(commande), mais $(commande) supporte la récursion de commandes $(commande1 $(commande2)), pas `commande1 `commande2``

Merci ! (Intéressant la récursion)
Je crois que `` est plus ancien que $(), ça doit être pour ça que c'est mieux reconnu.

Nil (./21) :
Désolé pour le HS, mais
Zephyr (./16) :
(la complétion contextuelle c'est vachement bien par exemple)

Elle a quoi de mieux que Control+R en bash ? (pour savoir, hein... je trouve perso que Control+R est assez pourrave et limité, et ce que tu appelles complétion contextuelle n'est peut-être pas ce à quoi je pense).

^R n'est pas contextuel du tout à ma connaissance, et est juste basé sur l'historique en plus (à ma connaissance aussi grin)

24

[cross] ./21 : Sauf erreur de ma part, le control+r de bash s'apparente plus à une recherche, non ?

Ce que j'appelle complétion contextuelle c'est le fait qu'appuyer sur "tab" déclenche une complétion non pas sur les noms des fichiers du dossier courant, mais sur les arguments possibles pour la commande en cours. Ça sera peut-être plus parlant avec quelques exemples, donc voilà ce que donne un "tab" chez moi en fonction de ce qu'on vient de taper : http://www.mirari.fr/Zpg9
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

25

sale geek grin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

26

puissant !

27

Zephyr (./24) :
Ce que j'appelle complétion contextuelle c'est le fait qu'appuyer sur "tab" déclenche une complétion non pas sur les noms des fichiers du dossier courant, mais sur les arguments possibles pour la commande en cours. Ça sera peut-être plus parlant avec quelques exemples, donc voilà ce que donne un "tab" chez moi en fonction de ce qu'on vient de taper : http://www.mirari.fr/Zpg9

love j'en ai toujours rêvé !
avatar

28

Tes rêves sont étranges grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

29

./27 Ben fallait le faire, c'est le principe du DIY libre toussa embarrassed

30

Zephyr (./16) :
perso j'utilise zsh, quand on prend le temps de le configurer il a un tas d'options très pratiques (la complétion contextuelle c'est vachement bien par exemple)


Il me semblait que c'était supporté sous bash : http://www.caliban.org/bash/
http://www.debianaddict.org/article6.html