Bonjour les amis,

J'ai un truc qui me rend dingue.... Voilà le problème. A vrai dire j'ai deux problèmes:

1er Problème:

J'ai une fonction ChangeChar :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
function ChangeChar {
	# Function: This function update char $1 with char $2
	# List of parameters:
	#          - $1: Char to be updated
	#          - $2: New value of the char
	#          - $3: File to be updated
	# ------------------------------------
	sed "s/^${1}=.*/${1}=${2}/" ${3} > ${3}.tmp
	cp -f ${3}.tmp ${3}
	rm -f  ${3}.tmp
}
Le problème c'est que quand le 2ème argument "${2}" est une chaine vide, il me donne des messages d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sed: -e expression #1, char 40: unknown option to `s'
pour régler ce problème j'ai fait un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ChangeChar {
	# Function: This function update char $1 with char $2
	# List of parameters:
	#          - $1: Char to be updated
	#          - $2: New value of the char
	#          - $3: File to be updated
	# ------------------------------------
	if [ -z ${2} ]
	then
		sed "s/^${1}=.*/${1}=/" ${3} > ${3}.tmp
	else 
		sed "s/^${1}=.*/${1}=${2}/" ${3} > ${3}.tmp
	fi
	cp -f ${3}.tmp ${3}
	rm -f  ${3}.tmp
}
mais ça ne règle pas le problème malheureusement.

2eme Problème:
ça concerne toujours la même fonction. En fait, avec cette fonction je parcours 3 fichiers, pour chacun, quand je trouve le pattern que je veux remplacer, et bien je le remplace sinon ça doit continuer le traitement sans générer d'erreur.

Le soucis, c'est que, quand il parcours les 3 fichiers, et qu'il ne trouve pas un pattern dans l'un d'eux, il me générer un message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sed: -e expression #1, char 40: unknown option to `s'
Merci de votre aide