Bonjour,

J'ai écrit des scripts bash il y a quelques temps qui fonctionnaient très bien (en utilisant /bin/bash), mais la cible sur laquelle je travaille ne contient que /bin/sh, et donc mon programme ne marche plus, et je n'arrive pas à débugger !

J'ai notamment 2 problèmes : la comparaison des chaînes de caractères que je faisais ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
comp()
{
     if [[ $1 == "chaine" ]]
     then
          echo OK
     fi
}
 
comp "PAS OK"
On me dit tout d'abord que les "[[" ça ne veut rien dire, mais le problème persiste même avec un seul [.

Le 2ème souci correspond à la substitution dans une chaîne. Voici mon code avant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
subs()
{
chiffre=${1:0:1}
}
 
subs "3:B"
Erreur : Bad substitution ...

Mais là je vois vraiment pas !

Je vous remercie d'avance !

EDIT : J'ai trouvé pour la comparaison, il faut faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if [ "$1" = "chaine" ];
Par contre, je n'ai toujours pas trouvé pour la substitution ... et je ne veux pas passer par cut parce que ça n'a aucun rapport avec un fichier