oui j’ai tous les droit mais je ne comprend pas pourquoi la redirection ne se fait pas je te copie tous mon code peut être que tu comprendra
#!/bin/sh
clear
cd serv1
ps x | grep serveur1 | cut -d " " -f 1 | xargs kill -9
map=dm_steamlab
echo "la map par defaut et: $map si sa te convient appuis sur la touche entree"
echo "sinon si tu veut changer donne moi une autre map"
echo -n "quel map? "
read map
if [ "$map" = "" ]; then
map=dm_steamlab
player=2
echo "combien de joueurs?"
read player
screen -dmS serveur1 ./srcds_run -game hl2mp +ip 188.165.199.48 -port 27015 +maxplayers $player +map $map -tickrate 100 -autoupdate
elif [ "$map" != "defaut" ]; then
echo "combien de joueurs?"
read player
screen -dmS serveur1 ./srcds_run -game hl2mp +ip 188.165.199.48 -port 27015 +maxplayers $player +map $map -tickrate 100 -aut$
elif [ "$map" == "defaut" ]; then
echo "CONFIGUATION PAR DEFAUT ACTIVER"
echo -n "Merci de m'indiquer quel map tu veux mettre par defaut "
read defaut
echo "$defaut" > map
echo "la map paramétrer par defaut et maintenant $defaut"
fi
La redirection > c’est pour écrire quelque chose dans un fichier (vérifie, tu devrais avoir un fichier “map” contenant la valeur). Mais c’est bien beau d’écrire dans un fichier si tu ne le lis jamais…
J’imagine (vu le peu d’explications) que le problème vient plutôt de l’initialisation de ta variable au début du script, qui devrait plutôt être du genre :
map=$(if [ -r map ]; then
cat map
else
echo "dm_steamlab"
fi
)
Et aussi, essaye d’utiliser des chemins complets, ça évitera de disperser tes fichiers aux quatre coins du disque dur en fonction d’où tu appelles le script (le cd serv1 ne fonctionnera pas si tu appelles le script à partir du mauvais répertoire). En assumant que ton script se trouve dans le répertoire contenant le sous-répertoire serv1 :
Donc soit tu as des problèmes de permissions, soit le fichier “map” est écrit ailleurs que là où tu l’attends à cause du répertoire courant quand tu appelles le script. D’où l’intérêt de faire un cd vers un répertoire connu.
Pour t’en convaincre, au lieu de faire echo “$defaut” > map remplace map par un chemin absolu (par exemple /tmp/essai_map) tu verras que le fichier est bien créé.