Shell : exécuter un script
dyladymandriva
Messages postés
11
Statut
Membre
-
dyladymandriva Messages postés 11 Statut Membre -
dyladymandriva Messages postés 11 Statut Membre -
Bonjour à tous,
je suis débutante dans l'univers LINUX, je m'initie donc à partir d'exemples. J'ai commencé par essayer de créer un script:
#!bin/bash
#on met dans le fichier liste le nom de tous les fichiers de l'arborescence (ls -R récursif)
ls -R > liste
#on teste le code de retour de la commande de grep
#recherche du mot spécifié par $1 dans le fichier liste
if grep -w $1 liste
then echo "Il y a un fichier nommé $1 dans cette arborescence"
fi
#on efface le fichier liste après usage
rm list
C'est un script donné par le professeur, donc exempt d'erreur, mais pourquoi quand je tape le nom du fichier dans la console shell, j'obtiens le message d'erreur du style "bash: fichier not found" ?
Je vous remercie pour l'aide salvatrice que vous pouvez m'apporter.
dylady
P.-S.: la commande file appliquée sur mon fichier renvoit text, est-ce là le problème?
je suis débutante dans l'univers LINUX, je m'initie donc à partir d'exemples. J'ai commencé par essayer de créer un script:
#!bin/bash
#on met dans le fichier liste le nom de tous les fichiers de l'arborescence (ls -R récursif)
ls -R > liste
#on teste le code de retour de la commande de grep
#recherche du mot spécifié par $1 dans le fichier liste
if grep -w $1 liste
then echo "Il y a un fichier nommé $1 dans cette arborescence"
fi
#on efface le fichier liste après usage
rm list
C'est un script donné par le professeur, donc exempt d'erreur, mais pourquoi quand je tape le nom du fichier dans la console shell, j'obtiens le message d'erreur du style "bash: fichier not found" ?
Je vous remercie pour l'aide salvatrice que vous pouvez m'apporter.
dylady
P.-S.: la commande file appliquée sur mon fichier renvoit text, est-ce là le problème?
A voir également:
- Shell : exécuter un script
- Classic shell - Télécharger - Personnalisation
- Secure shell - Télécharger - Divers Web & Internet
- Shell infrastructure host c'est quoi - Guide
- Shell startup windows 10 - Guide
- Shell do while ✓ - Forum Shell
12 réponses
Salut,
Sûrement que tu n'as pas rendu ton fichier exécutable par la commande :
Sûrement que tu n'as pas rendu ton fichier exécutable par la commande :
chmod +x ton_scriptFichier que tu exécuteras ensuite en lançant la commande :
./ton_scriptou
sh ton_script;-))
Coucou oui j'ai fait ce changement de droit d'accès : 'chmod u+x nom_script'.
Mais effectivement s'il faut taper './nom_script' pour l'exécuter, ça explique tout. Donc j'essaierai ça.
Merci
Mais effectivement s'il faut taper './nom_script' pour l'exécuter, ça explique tout. Donc j'essaierai ça.
Merci
Hello,
ou encore, mets à jour la variable PATH
ou encore, mets à jour la variable PATH
export PATH=$PATH:/chemin/versscript/et ensuite pour exécuter tu tapes le nom de script (bien sûr avant il faut le rendre exécutable avec chmod ;-))
scriptlami20j
Re,
Et enfin achever la commande par un dernier slash?
Pas obligatoire le slash à la fin. Pour comprendre la variable PATH tu peux jeter un coup d'oeil ici bash la variable d environement path
lami20j
Et enfin achever la commande par un dernier slash?
Pas obligatoire le slash à la fin. Pour comprendre la variable PATH tu peux jeter un coup d'oeil ici bash la variable d environement path
lami20j
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Coucou Hyro, merci de ta participation. Bonjour tout le monde. Et bien je sais dans quel répertoire se trouve mon fichier (j'ai pu le vérifier avec la commande 'pwd monfichier'), mais même en étant dans le bon directory, on me renvoit le message d'erreur 'bash: monfichier: command not found'.
Le seul moyen qui a réussi pour exécuter mon script était de taper : './' devant le nom du fichier, comme l'a suggéré jipicy. Pour le script que j'ai spécifié dans un message précédent, il ne se passe rien à part le prompt blanc sur la ligne suivante. Qu'est-ce que ça signifie?
P.-S. :Maintenant, j'essaye d'étudier le PATH pour pouvoir utiliser les conseils de lami20j.
A plus
Le seul moyen qui a réussi pour exécuter mon script était de taper : './' devant le nom du fichier, comme l'a suggéré jipicy. Pour le script que j'ai spécifié dans un message précédent, il ne se passe rien à part le prompt blanc sur la ligne suivante. Qu'est-ce que ça signifie?
P.-S. :Maintenant, j'essaye d'étudier le PATH pour pouvoir utiliser les conseils de lami20j.
A plus
Salut,
pwd veut dire Print Working Directory et il n'y a pas d'argument
le but c'est d'afficher le répertoire en cours.
'bash: monfichier: command not found'.
Il y a un tuto dans la FAQ ccm bash la variable d environnement path
lami20j
pwd veut dire Print Working Directory et il n'y a pas d'argument
le but c'est d'afficher le répertoire en cours.
'bash: monfichier: command not found'.
Il y a un tuto dans la FAQ ccm bash la variable d environnement path
lami20j
Bonsoir,
ça y est mon script s'exécute:
#!bin/bash
#on met dans le fichier liste le nom de tous les fichiers de l'arborescence (ls -R récursif)
ls -R > liste
#on teste le code de retour de la commande de grep
#recherche du mot spécifié par $1 dans le fichier liste
if grep -w $1 liste
then echo "Il y a un fichier nommé $1 dans cette arborescence"
fi
#on efface le fichier liste après usage
rm list
Voilà ce qui s'affiche dans la console:
.:
Desktop
fichierdd
fichierdd~
liste
tmp
./Desktop:
Corbeille
Home.desktop
./Desktop/Corbeille:
./tmp:
fglrx-glc22-4.2.0-2.9.6.i586.rpm
orbit-who
./tmp/orbit-who:
linc-22c9-0-328a3c2fccb30
linc-22d8-0-636174f6671d0
linc-2381-0-2d86ed89dcd2f
linc-24e7-0-3d85e33b58da
linc-6cbc-0-5bd8b671634d
Je vais essayer de déchiffrer et comprendre ce week end, mais si vous pouvez m'y aider, je serais enchantée.
A plus
ça y est mon script s'exécute:
#!bin/bash
#on met dans le fichier liste le nom de tous les fichiers de l'arborescence (ls -R récursif)
ls -R > liste
#on teste le code de retour de la commande de grep
#recherche du mot spécifié par $1 dans le fichier liste
if grep -w $1 liste
then echo "Il y a un fichier nommé $1 dans cette arborescence"
fi
#on efface le fichier liste après usage
rm list
Voilà ce qui s'affiche dans la console:
.:
Desktop
fichierdd
fichierdd~
liste
tmp
./Desktop:
Corbeille
Home.desktop
./Desktop/Corbeille:
./tmp:
fglrx-glc22-4.2.0-2.9.6.i586.rpm
orbit-who
./tmp/orbit-who:
linc-22c9-0-328a3c2fccb30
linc-22d8-0-636174f6671d0
linc-2381-0-2d86ed89dcd2f
linc-24e7-0-3d85e33b58da
linc-6cbc-0-5bd8b671634d
Je vais essayer de déchiffrer et comprendre ce week end, mais si vous pouvez m'y aider, je serais enchantée.
A plus
Salut,
Affiche-nous le résultat de la commande :
Puis dans un second temps, affiche-nous aussi les commandes que tu tapes et l'erreur exacte affichée par le shell.
Merci :-))
Affiche-nous le résultat de la commande :
ls -ldepuis le répertoire contenant ton fichier.
Puis dans un second temps, affiche-nous aussi les commandes que tu tapes et l'erreur exacte affichée par le shell.
Merci :-))
Voilà pour le 'ls -l'
[who@epf-s5c2 ~]$ ls -l
total 24
drwx------ 3 who who 4096 jui 13 2005 Desktop/
-rw-rw-r-- 1 who who 693 nov 17 18:18 explpoly2pag8.txt
-rwxr--r-- 1 who who 373 nov 17 18:10 fichierdd*
-rwxr--r-- 1 who who 372 nov 17 18:10 fichierdd~*
-rw-r--r-- 1 who who 296 nov 17 18:11 liste
drwx------ 3 who who 4096 nov 17 18:20 tmp/
[who@epf-s5c2 ~]$
Et il n' y a plus d'erreur, sans doute parce que j'étais sur mandrake 10.0 (Quand ça bloquait) et plus sur mandriva ;)
[who@epf-s5c2 ~]$ ls -l
total 24
drwx------ 3 who who 4096 jui 13 2005 Desktop/
-rw-rw-r-- 1 who who 693 nov 17 18:18 explpoly2pag8.txt
-rwxr--r-- 1 who who 373 nov 17 18:10 fichierdd*
-rwxr--r-- 1 who who 372 nov 17 18:10 fichierdd~*
-rw-r--r-- 1 who who 296 nov 17 18:11 liste
drwx------ 3 who who 4096 nov 17 18:20 tmp/
[who@epf-s5c2 ~]$
Et il n' y a plus d'erreur, sans doute parce que j'étais sur mandrake 10.0 (Quand ça bloquait) et plus sur mandriva ;)
Salut,
P.-S.: la commande file appliquée sur mon fichier renvoit text, est-ce là le problème?
Attention pour la syntaxe, j'ai remarqué une erreur
au lieu de #!bin/bash il faut écrire
P.-S.: la commande file appliquée sur mon fichier renvoit text, est-ce là le problème?
Attention pour la syntaxe, j'ai remarqué une erreur
au lieu de #!bin/bash il faut écrire
#!/bin/bashMaintenant la commande file doit afficher
nomfichier: Bourne-Again shell script text executablelami20j
Re,
un résumé pour ta demande
Pour pouvoir exécuter un programme en ligne de commande il y plusieurs possiblités (avec la condition bien sûr que le fichier soit exécutables - un coup d'oeil sur attributions droits sous GNU/Linux )
1. en utilisant le chemin absolu
Dans ce cas n'importe où on se trouve on n'as pas de problèmes
Dans ce cas il faut aller dans le répertoire qui contient l'exécutable
lami20j
un résumé pour ta demande
Pour pouvoir exécuter un programme en ligne de commande il y plusieurs possiblités (avec la condition bien sûr que le fichier soit exécutables - un coup d'oeil sur attributions droits sous GNU/Linux )
1. en utilisant le chemin absolu
Dans ce cas n'importe où on se trouve on n'as pas de problèmes
/chemin/vers/programme2. en utilisant le chemin relatif
Dans ce cas il faut aller dans le répertoire qui contient l'exécutable
cd /chemin/vers/programme ./programme3. en ajoutant le chemin qui contient l'exécutable à la variable PATH
export PATH=$PATH:/chemin/vers/programme programmePour plus de détails regarde variable PATH
lami20j