#1 Le 19/10/2009, à 14:54
- FrenchFigaro
[Résolu] la commande cd ne fonctionne pas dans un script...
Salut, je bosse souvent sur mon ordi pour les cours et j'ai un répertoire de travail particulier. Mais comparativement à mon utilisation de la ligne de commande, je n'ai pas trop envie de le mettre en répertoire par défaut.
J'ai fait un petit script bidon
#!/bin/bash
cd '/home/antoine/Documents/U.P.P.A./Cours 2009-2010/'
mais il ne me change pas de directory. Je pensais que c'était mon chemin qui merdouillait, alors j'ai changé pour un ls et ça marche bien. (le script est bien dans le $PATH)
Le systeme ne me renvoie aucun message
antoine@frenchfigaro-laptop:~$ travail
antoine@frenchfigaro-laptop:~$
WTF ?!??
Dernière modification par FrenchFigaro (Le 20/10/2009, à 18:06)
Au nom de l'immortel Empereur Linux, héritier d'UNIX, moi, FrenchFigaro, fidèle servant de la cause opensource, je te renvoie là d'où tu n'aurais jamais dû sortir Microsoft !
Hors ligne
#2 Le 19/10/2009, à 15:17
- Markorki
Re : [Résolu] la commande cd ne fonctionne pas dans un script...
je vois 2 problèmes dans ta commande:
cd '/home/antoine/Documents/U.P.P.A./Cours 2009-2010/'
Ton quotage en simples apostrophes me semble inutile... Toute la chaine est transmise au shell (cd commande interne), l'espace avant "2009" est transmis comme séparateur
Je mettrais de doubles quotes autour de "Cours 2009-20010" et je virerais les simples quotes.
J'ajoute que c'est une sale habitude introduite par XP de permettre les espaces dans les noms de fichiers ou répertoires. Même avec XP, le traitement n'est pas homogène : quand on utilise certains liens ole, le quotage est correct ou non (le nom est transmis entier ou coupé au premlier blanc).
Mes copains me traitent de dinosaure; mais pour les noms de fichiers/répertoires, je recommande l'absence d'espace et leur remplacement par des "_" (underscore, alias "blanc souligné"), avec lesquels le quotage est inutile, et la transmission de paramètres et arguments toujours correcte ;-)
Hors ligne
#3 Le 19/10/2009, à 15:20
- Markorki
Re : [Résolu] la commande cd ne fonctionne pas dans un script...
j'ai oublié un autre "détail", très important :
Le cd est dans le script, il faut faire quelque-chose dans ce répertoire pour vérifier **après** si ça a fait quelque-chose, car en fin de script, on revient au shell appelant, donc au "PWD" initial ;-)
Hors ligne
#4 Le 19/10/2009, à 17:46
- serged
Re : [Résolu] la commande cd ne fonctionne pas dans un script...
Normal
À la fin du script, le shell revient au répertore d'origine.
Tu peux très bien voir si ta commande marche, ajoute un "pwd" à la fin :
#!/bin/bash
cd '/home/antoine/Documents/U.P.P.A./Cours 2009-2010/'
pwd
Et elle affichera bien :
/home/antoine/Documents/U.P.P.A./Cours 2009-2010/
(si le répertoire existe)
et reviendra désespérément au chemin d'origine...
Seule solution pour t'en tirer : En faire un alias :
alias cours='cd "/home/antoine/Documents/U.P.P.A./Cours 2009-2010/"'
à mettre dans le fichier ~/.bashrc
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#5 Le 20/10/2009, à 18:06
- FrenchFigaro
Re : [Résolu] la commande cd ne fonctionne pas dans un script...
Effectivement, c'est donc un problème lié au fait que j'utilise un script et tout de suite, en utilisant un alias, ça marche beaucoup mieux.
Je me demande pourquoi je n'y avais pas pensé...:rolleyes:
Merci !
Au nom de l'immortel Empereur Linux, héritier d'UNIX, moi, FrenchFigaro, fidèle servant de la cause opensource, je te renvoie là d'où tu n'aurais jamais dû sortir Microsoft !
Hors ligne
#6 Le 28/10/2009, à 21:17
- n3o51
Re : [Résolu] la commande cd ne fonctionne pas dans un script...
http://forum.ubuntu-fr.org/viewtopic.ph … 4#p2966544
A lire
le cd fonctionne dans un script
D'autre solution sont apportés ici au cas ou d'autre chercherais
Dernière modification par n3o51 (Le 28/10/2009, à 21:17)
Welcome to the real world
________________________________
Hors ligne