linux bash concatenation de variable

linux bash concatenation de variable - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 13-07-2015 à 01:34:28    

Bonjour
 
 
J'ai un problème avec les lignes suivantes:
Je voudrais que les 2 derniers echos affichent: openmandriva_stable si je tape 1.
mais il affichent depot1
 
echo $depot1 // affiche bien openmandriva_stable
 
j'ai essayé avec quote, double quote, backquote, parenthèses, {}
on ne peut pas caster, donc je ne sais plus quoi faire.
 
Merci
jean francois
 
 
#!/bin/bash
clear
 
depot1="openmandriva_stable"
depot2="openmandriva_cooker"
 
echo "choix des depots de la distribution a mettre a jour: "
echo "1) $depot1"
echo "2) $depot2"
 
echo
read  -p 'vous avez choisi le depot: ' -n 1 depot_num
echo
echo "depot_num: " $depot_num
 
echo
echo $depot1
a="depot"
echo "nom du depot: " $a$depot_num
echo "nom du depot: " depot$depot_num
 
 
exit

Reply

Marsh Posté le 13-07-2015 à 01:34:28   

Reply

Marsh Posté le 13-07-2015 à 10:36:55    

jean francois74 a écrit :

Bonjour
 
 
J'ai un problème avec les lignes suivantes:
Je voudrais que les 2 derniers echos affichent: openmandriva_stable si je tape 1.
mais il affichent depot1


 
Il affiche depot1 parce que tu lui demande d'afficher depot1 ;)
 
Demande lui d'afficher openmandriva_stable :D


---------------
http://lacabanedeladmin.trickip.net/
Reply

Marsh Posté le 13-07-2015 à 10:53:42    

certes, mais je voudrais qu'il le fasse de manière plus subtile ...

Reply

Marsh Posté le 13-07-2015 à 11:46:23    

Un tableau peut etre une solution:
 
depot=(openmandriva_stable openmandriva_cooker)
 
echo ${depot[$depot_num]}

Reply

Marsh Posté le 13-07-2015 à 14:15:44    

Merci, c'était la solution
mais je suis surpris d'être obligé de passer par un tableau pour quelque choses d'aussi simple !
 
 
#!/bin/bash
clear
 
depot=(openmandriva_stable openmandriva_cooker)
 
echo "choix des depots de la distribution a mettre a jour: "
echo "0) $depot0" ${depot[0]}
echo "1) $depot1" ${depot[1]}
 
echo
read  -p 'vous avez choisi le depot ' -n 1 depot_num  
echo ":" ${depot[$depot_num]}
 
exit

Reply

Marsh Posté le 13-07-2015 à 14:51:56    

Un tableau c'est pas forcement complique non plus  ;)

Reply

Marsh Posté le 13-07-2015 à 15:25:34    

Je te l'ai dit, demande lui de t'afficher openmandriva_stable si tel est ton choix
 

#!/bin/bash
 
clear
 
depot1="openmandriva_stable"
depot2="openmandriva_cooker"
 
echo "choix des depots de la distribution a mettre a jour: "  
echo "1) $depot1"  
echo "2) $depot2"  
 
echo  
read  -p 'vous avez choisi le depot: ' -n 1 depot_num  
echo  
echo "depot_num: " $depot_num  
 
if [ "$depot_num" -eq 1 ]; then
        depot = $depot1
else
        depot = $depot2
fi
 
echo
echo $depot
a="depot"
echo "nom du depot: " $a$depot
echo "nom du depot: " depot$depot
 
exit


---------------
http://lacabanedeladmin.trickip.net/
Reply

Marsh Posté le 13-07-2015 à 15:50:52    

Merci , j'ai 2 réponses pour le prix d'une ...  
 
j'ai juste enlevé les espaces entre (depot = $depot1)
 
Ce qui m’embête , c'est que dans un autre langage, il me semble que j'aurais pu caster la réponse, mais là, j'ai contourné le problème.
 
Merci à tous les 2

Reply

Marsh Posté le 13-07-2015 à 16:27:51    

caster ?

 

edit: pour l'espace, à la création du script ca marchait mais la ca marche plus. Bizarre (Et oui sans l'espace c'est bon)


Message édité par kisscoolz le 13-07-2015 à 16:30:49

---------------
http://lacabanedeladmin.trickip.net/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed