Ligne de commande linux
JyN
-
JyN -
JyN -
Bonjour,
j'essaye d’exécuter ce petit bout de programme dans le terminal de linux :
Le problème c'est que lorsque je fais la commande :
chmod +x nom_du_fichier (Je rend le fichier exécutable)
Et que par la suite je fait :
bash nom_du_fichier
J'ai pour seul réponse :
nom_du_fichier : ligne 6 : [ : -lt : opérateur unaire attendu
Je ne sais pas du tout comment résoudre ce problème merci d'avance pour vos réponses.
j'essaye d’exécuter ce petit bout de programme dans le terminal de linux :
n=$1 if [ $n -lt 10 ] then n="0"$n fi echo $n
Le problème c'est que lorsque je fais la commande :
chmod +x nom_du_fichier (Je rend le fichier exécutable)
Et que par la suite je fait :
bash nom_du_fichier
J'ai pour seul réponse :
nom_du_fichier : ligne 6 : [ : -lt : opérateur unaire attendu
Je ne sais pas du tout comment résoudre ce problème merci d'avance pour vos réponses.
2 réponses
-
Bonjour,
$1 est un paramètre passé au script, si tu lancesbash nom_du_fichier
tu ne donnes pas de paramètre, donc le if échoue pour syntaxe incorrecte, il faudrait lancer par exemplebash nom_du_fichier 2
pour passer 2 en paramètre
-
- Le fichier non-exécutable :
$ ls -l
total 4
-rw-rw-r-- 1 jp jp 60 nov. 29 13:19 fich
Le contenu du fichier tel qu'il devrait être…$ cat fich
n="${1}"
if [ "${n}" -lt 10 ]
then
n="0${n}"
fi
echo "${n}"
Le script lancé avec un paramètre (5) :$ bash fich 5
05
Le script lancé sans paramètre :$ bash fich
fich: ligne 2 : [: : nombre entier attendu comme expression
Tu comprends mieux ?
-
-
-
-
Salut,
Deux, trois petites remarques concernant ta demande…- Il est toujours préférable d'entourer les variables par des quotes doubles à moins de savoir pourquoi on ne le fait pas. La remarque précédente est d'autant plus vraie lors d'un test ([ … "${var}" … ])
- Il est aussi préférable d'entourer les variables par des accolades, surtout si on a besoin d'accoler des variables et des mots.
- Il ne sert à rien de rendre un fichier de script exécutable si on le lance en le faisant précéder d'un shell.
- Si on veut rendre un script shell (ou autre) exécutable et autonome, il faut désigner un shebang en début de script (
#!/bin/bash
ou#!/bin/zsh
ou autres). À partir de là, le script pourra être lancé de cette façon :./le_script.sh
.