J'étais en train de me pencher sur un simple script qui va me permettre tout simplement de détecter l'architecture de l'installation. Donc quelque chose de vraiment pas compliqué du tout. Du moins c'est ce que je pensais... Voici mon script :
#!/bin/bash
if [[ $1 == "-g" ]]
then
if [[ "getconf LONG_BIT" == "64" ]]
then
echo "architecture 64 bits détectée"
elif [[ "getconf LONG_BIT" == "32" ]]
then
echo "achitecture 32 bits détectée"
else
echo "architecture non prise en charge pour le moment..."
fi
else
echo "Arguments : "
echo " -i : lance l'installation guidée pour Arch Linux"
echo " -g : lance l'installation de la partie graphique."
echo " \"\" : affiche ce message."
fi
Donc pour cette partie : si on lance le script sans argument on obtient la petite aide (mais ce n'est pas très important) et si on lance avec l'option -g (j'ai enlevé la grosse partie avec l'option -i) on tombe sur la détection de l'architecture... Qui ne fonctionne pas pour moi.
J'ai testé tout d'abord sur ma VM de dev en 64 bits, ça me mettait toujours "architecture non prise en charge". Donc je me dis que c'est peux être la machine alors je me met à installer sur une autre VM rapidemen arch en 32 je test et j'obtiens toujours la même chose...
Request assistance ! Merci par avance
Dernière modification par aminnairi le sam. 30 janv. 2016, 14:49, modifié 1 fois.
Arch Linux x86_64 UEFI
7,3 Gio RAM
Intel® Core™ i5-4200U CPU @ 1.60GHz × 4
Intel® Haswell Mobile + NVIDIA GeForce 840M 2 Gio vRAM
KDE Plasma + SDDM
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière) toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable popho.be : Kimsufi KS-3, FreeBSD 11.0 Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Moviuro a écrit :Y'a aussi simplement uname -m, non ?
Oui c'est vrai ! mais j'ai toujours préféré getconf LONG_BIT je trouve ça très simple... et puis j'ai entendu que pour les architectures 32 bits les appellations peuvent être i686 et i386 et pour x86_64 il y a aussi amd64 donc j'étais pas vraiment sûr que mon code soit totalement semi-portable (entre plusieurs machines arch linux tout du moins) donc dans le doute je reste avec getconf LONG_BIT ! Mais merci pour la suggestion
Résumé :
Le code marche donc bien évidemment en ne comparant plus des string mais une commande à une string comme ceci (pour les curieux : )
#!/bin/bash
if [[ $1 == "-g" ]]
then
if [[ $(getconf LONG_BIT) == "64" ]]
then
echo "architecture 64 bits détectée"
elif [[ $(getconf LONG_BIT) == "32" ]]
then
echo "achitecture 32 bits détectée"
else
echo "architecture non prise en charge pour le moment..."
fi
else
echo "Arguments : "
echo " -i : lance l'installation guidée pour Arch Linux"
echo " -g : lance l'installation de la partie graphique."
echo " \"\" : affiche ce message."
fi
J'irais même jusqu'à rajouter une variable avec la commande pour éviter les redondances dans mon code. Merci à vous !
Arch Linux x86_64 UEFI
7,3 Gio RAM
Intel® Core™ i5-4200U CPU @ 1.60GHz × 4
Intel® Haswell Mobile + NVIDIA GeForce 840M 2 Gio vRAM
KDE Plasma + SDDM
#!/bin/bash
if [ `getconf LONG_BIT` = 64 ]
then
echo "architecture 64 bits détectée"
elif [ `getconf LONG_BIT` = 32 ]
then
echo "achitecture 32 bits détectée"
else
echo "architecture non prise en charge pour le moment..."
fi
#!/bin/bash
if [ `getconf LONG_BIT` = 64 ]
then
echo "architecture 64 bits détectée"
elif [ `getconf LONG_BIT` = 32 ]
then
echo "achitecture 32 bits détectée"
else
echo "architecture non prise en charge pour le moment..."
fi
Salut à toi !
Je ne connaissais pas du tout cette syntaxe. Ça m'a l'air plus simple... Merci de ta contribution !
Arch Linux x86_64 UEFI
7,3 Gio RAM
Intel® Core™ i5-4200U CPU @ 1.60GHz × 4
Intel® Haswell Mobile + NVIDIA GeForce 840M 2 Gio vRAM
KDE Plasma + SDDM
#!/bin/sh
ARCH=$(getconf LONG_BIT)
case $ARCH in
32) echo "architecture 32 bits détectée";;
64) echo "architecture 64 bits détectée";;
*) echo "architecture non prise en charge pour le moment..."
esac
(plus lisible notamment si tu complexifies le script avec justement d'autres conditions...)
... autrement uname est suffisant à mon avis.
«The following statement is not true. The previous statement is true.»
declare -r ARCH=$(getconf LONG_BIT)
function instarch64() { echo 'install une 64'; }
function instarch32() { echo 'install une 32'; }
type instarch${ARCH} &>/dev/null || {
echo "pas de prise en charge de ${ARCH}"
exit 99
}
instarch${ARCH}
declare -r ARCH=$(getconf LONG_BIT)
if [ -r "lib/$ARCH.plugin.sh" ]; then
source "lib/$ARCH.plugin.sh" # include du fichier
install_architecture # même fonction d'entrée dans chaque fichier *.plugin
else
echo "pas de prise en charge de ${ARCH}"
fi
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière) toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable popho.be : Kimsufi KS-3, FreeBSD 11.0 Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Ça marche du feu de dieu ! Je cherchais justement un spell checker pour bash étant donné que y'a pas vraiment d'IDE avec debugger comme en C/C++ pour aider...
Heureusement que je suis passé par ce site parce que j'ai quand même fais deux/trois fautes dans mon code en entier qui aurait pu m...der tout
Et pour tout les autres je ne vous quote-back pas mais merci beaucoup pour votre aide ça fait plaisir !
Arch Linux x86_64 UEFI
7,3 Gio RAM
Intel® Core™ i5-4200U CPU @ 1.60GHz × 4
Intel® Haswell Mobile + NVIDIA GeForce 840M 2 Gio vRAM
KDE Plasma + SDDM