Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 19/10/2009, à 15: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, à 19: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, à 16: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, à 16: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, à 18: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


Linux-Mint Rosa 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#5 Le 20/10/2009, à 19: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, à 22: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 smile

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, à 22:17)


Welcome to the real world
________________________________

Hors ligne