Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Probleme script... commande "Clear" non reconnu
Envoyé par: YnotnA

Bonjour,

Je viens tout juste de me lancer dans la programmation Shell sous linux. J'ai commencer a developper un script de démarrage de serveur Counter Strike Source avec recuperation du nombres de joueurs et autres informations diverse.

Au debut je n'utilisais pas de fonction et tout marchait correctement, puis j'ai voulu ameliorer et la le début des problème.

Voici un morceau de mon code

# Fonction du demarrage normal
config_normal()
{
clear
# ===========JOUEURS==========
# On demande le nombre maximal de joueur
echo "Nombre maximal de joueurs ?"
echo "DEFAUT : $joueurs_def"
read joueurs
# Si valeur null on met par defaut
joueurs=$(defaut $joueurs_def $joueurs)
# Parametre de l'interval pour les joueurs : Valeur min / Valeur max / Valeur enregistré
interval $joueurs_min $joueurs_max $joueurs
# Recuperation du return de l'interval
joueurs=$?
clear
# ============================
}

Voila ce qu'il me sort

/home/YnotnA/Bureau/css-launch2: line 172: clear: command not found
/home/YnotnA/Bureau/css-launch2: line 81: clear: command not found
Nombre maximal de joueurs ?
DEFAUT : 32


Quelqu'un pourrait il m'aider? Merci


Poste le Wednesday 26 November 2008 14:51:41
Répondre     Citer    
Re: clear inconnu
Envoyé par: nicola

Quel langage utilises-tu ?
P.S. : Les accents ne sont pas facultatifs. ]:-O

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Wednesday 26 November 2008 19:13:26
Répondre     Citer    
Re: Probleme script... commande "Clear" non reconnu
Envoyé par: YnotnA

J'utilise le langage bash

je démarre ainsi mon fichier par #!/bin/sh

#!/bin/sh

# Lancher serveur linux Counter Strike Source v001 par YnotnA
# Info : ynotlovetitia@gmail.com

# Repertoire de srcds_run (exemple : ~/Serveur/css)
PATH=~/Serveur/css

# Nombre de joueurs par defaut
joueurs_def=32
# Nombre de joueurs mini
joueurs_min=4
# Nombre de joueurs maxi
joueurs_max=32
# Type de serveur par defaut 0=INTERNET 1=LAN
lan_def=0
# Ne pas toucher ses paramètres /!\ /!\
lan_min=0
lan_max=1
# Port utilisé par défaut
port_def=27015
# Map par defaut
map_def="de_dust2"
# Config serveur par defaut 1=Normal 2=Rapide
config_def="2"
# Ne pas toucher ses paramètres /!\ /!\
config_min=1
config_max=2
# Nombre de serveur a lancer par defaut
serveur_def=1

joueurs_max()
{
	echo "Joueurs max : $joueurs"
}

serveur()
{
	if [ $lan == 1 ]
	then
	echo "Serveur LAN"
	else
	echo "Serveur INTERNET"
	fi
}

# Fonction permettant de mettre les valeurs par defaut si celle ci est null
defaut()
{	
	# Si la variable est null	
	if [ ! $2 ]
	then
	# Alors on applique la valeur par defaut	
	echo $1
	else
	# Sinon on garde la valeur	
	echo $2	
	fi
}

# Fonction permettant de definir un interval a une variable
interval()
{
	# On recupere la variable afin de pouvoir la modifie si la valeure est en dehors de l'interval	
	valeur=$3	
	while [ $valeur -lt $1 -o $valeur -gt $2 ];do
	echo "La valeure ne peut etre comprise que entre $1 et $2"
	read valeur
		# Si la valeur est null après un mauvais choix on met la variable en dehors de l'interval 		
		if [ ! $valeur ]; then
			valeur=$[$2+1]	
		fi	
	done	
	return $valeur
}


# Fonction du demarrage normal
config_normal()
{
clear
# ===========JOUEURS==========
# On demande le nombre maximal de joueur
echo "Nombre maximal de joueurs ?"
echo "DEFAUT : $joueurs_def"
read joueurs
# Si valeur null on met par defaut
joueurs=$(defaut $joueurs_def $joueurs)
# Parametre de l'interval pour les joueurs : Valeur min / Valeur max / Valeur enregistré
interval $joueurs_min $joueurs_max $joueurs
# Recuperation du return de l'interval
joueurs=$?
clear
# ============================

# =======AFFICHAGE INFO=======
joueurs_max
# ============================

# ============LAN=============
echo -e "\nType de serveur :"
echo "0 : INTERNET"
echo "1 : LAN"
echo "DEFAUT : INTERNET"
read lan
# Si valeur null on met par defaut
lan=$(defaut $lan_def $lan)
# Si config en dehors de l'interval boucle jusqu'a obtenir une valeure souhaité
interval $lan_min $lan_max $lan
# Recuperation du return de l'interval
lan=$?
clear
# ============================

# =======AFFICHAGE INFO=======
joueurs_max
serveur
# ============================

# ===========PORT=============
echo -e "\nPort du serveur :"
echo "DEFAUT : 27015"
read port
# Si valeur null on met par defaut
port=$(defaut $port_def $port)
clear
# ============================

# =======AFFICHAGE INFO=======
joueurs_max
serveur
echo "Port : $port"
# ============================
}

# Fonction du demarrage rapide
config_rapide()
{
	# On met tout par defaut	
	joueurs=$(defaut $joueurs_def $joueurs)
	lan=$(defaut $lan_def $lan)
	port=$(defaut $port_def $port)
}

# ========CORPS DU SCRIPT======
clear
echo "Configuration serveur"
echo "1 : Normal"
echo "2 : Rapide"
if [ config_def == $config_min ]
	then
		echo "DEFAUT : Normal"
	else
		echo "DEFAUT : Rapide"
	fi
read config
clear
# =============================

# ===========SERVEUR===========
echo "Nombre de serveur a lancer ?"
echo "DEFAUT : $serveur_def"
read serveur
serveur=$(defaut $serveur_def $serveur)

# Si valeur null recuperation de la configuration par defaut
config=$(defaut $config_def $config)
# Si config en dehors de l'interval boucle jusqu'a obtenir une valeure souhaité
interval $config_min $config_max $config
# Recuperation du return de l'interval
config=$?
clear
# =============================

if [ $config == $config_min ]
then
config_normal
else
config_rapide
fi

cd $PATH
i=1
while [ $i -le $serveur ];do
echo "Lancement serveur : $i"
./srcds_run -console -maxplayers $joueurs -autoupdate +map $map_def -port $port +sv_lan $lan -tickrate 100 +hostname "Serveur $x"
i=$[$i+1]
done

Voici mon script. J'ai beau essayé de le modifier je n'y arrive pas.

Merci beaucoup

Poste le Wednesday 26 November 2008 20:40:41
Répondre     Citer    
Re: Probleme script... commande "Clear" non reconnu
Envoyé par: lolotux

PATH=~/Serveur/css

incompatible avec le PATH des binaires...
soit tu écris : /usr/bin/clear
soit tu fixes le PATH : PATH="~/Serveur/css:/usr/sbin:/usr/bin:/sbin:/bin"

Software is like sex !
It's better when it's Free !

Poste le Thursday 27 November 2008 01:19:43
Répondre     Citer    
Re: Probleme script... commande "Clear" non reconnu
Envoyé par: YnotnA

Merci beaucoup lolotux.

Tu avais raison pour l'incompatibilité. Je pensais que PATH était simplement une variable quelconque. Depuis que j'ai corrigé l'erreur tout marche pour le mieux.

Encore un grand merci à toi

Poste le Thursday 27 November 2008 08:18:24
Répondre     Citer    
Re: Probleme script... commande "Clear" non reconnu
Envoyé par: lolotux

L'erreur était juste ! winking smiley

Software is like sex !
It's better when it's Free !

Poste le Thursday 27 November 2008 11:39:23
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Probleme script... commande "Clear" non reconnu
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons