Erreur d'execution d'un programme
Bonsoir tout le monde,
J'essaye d'executer un programmes qui permet de trouver des programmes dans le PATH.
Seulement, après compilation et execution il me renvoie ceci sur la console:
Code:
1 2 3
|
ss_trouve_prog_ds_path: file not recognized: File format not recognized
collect2: ld a retourné 1 code d'état d'exécution |
voici mon fichier ss_trouve_prog_ds_path :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
!/bin/sh
# inpath - Vérifie qu'un programme donné existe en tant que tel,
# ou se trouve dans la liste de répertoires du PATH.
in_path()
{
# Etant donnée une commande et le PATH, cherche la commande. Renvoie
# 0 si elle est trouvée et éxecutable, 1 dans le cas contraire.
# Attention! Ceci modifie temporairement l'IFS (le séparateur de champs
# en entrée) mais le remet en place à la fin.
cmd=$1 path=$2 retval=1
oldIFS=$IFS IFS=":"
for directory in $path
do
if [ -x $directory/$cmd ] ; then
retval=0 # si nous sommes là, nous avons trouvé $cmd dans directory
fi
done
IFS=$oldIFS
return $retval
}
checkForCmdInPath(){
var=$1
# Expliquons la notion du découpage de variable dans la
# conditionnelle suivante: ${var#expr} renvoie tout ce qui suit
# la portion de chaîne correspondant au motif 'expr' dans la
# valeur de la variable (si le motif est reconnu), et
# ${var%expr} renvoie tout ce qui ne correspond pas (dans le cas
# présent, il s'agit du seul premier caractère). On peut encore
# procéder en Bash en écrivant ${var:0:1} et faire appel à
# cut: cut -c1
if [ "$var" != "" ]
then
if [ "${var%${var#?}}" = "/" ] then
if [ ! -x $var ]
then
return 1
fi
! in_path $var $PATH ; then
return 2
fi
fi
}
if [ $# -ne 1 ] ; then
echo "Synthaxe: $0 commande" >&2 ; exit 1
fi
checkForCmdInPath "$1"
case $? in
0 ) echo "$1 trouvé dans le PATH" ;;
1 ) echo "$1 pas trouvé ou pas exécutable" ;;
2 ) echo "$1 pas trouvé dans le PATH" ;;
esac
exit O |
quelqu'un sait-t-il ce que sa veut dire ??
merci