#1 Le 17/12/2015, à 19:02
- Morrisson
[Résolu] cd dans un script bash
Bonsoir,
J'ai besoin de votre aide ! . Je suis débutant en Bash et je n'arrive pas à trouver la solution.
Zadd=`sed -n '5p' fichier.txt`
echo "$Zadd" ### le retour est : /home/alexandre/Mes\ Scripts/Nouveau\ dossier/zAdd/.
cd "$Zadd" ### c'est la que ça bloque
Quand j'exécute le script, apparaît ce message d'erreur:
./Tscript.sh: ligne 13 : cd: /home/alexandre/Mes\ Scripts/Nouveau\ dossier/zAdd/: Aucun fichier ou dossier de ce type
Si quelqu'un peux m'aider à trouver mon erreur ce serait super. Merci d''avance et bonne soirée à vous .
Dernière modification par Morrisson (Le 17/12/2015, à 20:34)
#2 Le 17/12/2015, à 19:11
- pingouinux
Re : [Résolu] cd dans un script bash
Bonsoir,
Essaye en remplaçant la ligne n° 5 de fichier.txt
/home/alexandre/Mes\ Scripts/Nouveau\ dossier/zAdd/
par
/home/alexandre/Mes Scripts/Nouveau dossier/zAdd/
Hors ligne
#3 Le 17/12/2015, à 19:23
- Morrisson
Re : [Résolu] cd dans un script bash
Voilà, toujours une erreur . Sinon merci c'est super cool d'avoir répondu si rapidement et de m'aider.
cd: /home/alexandre/Mes Scripts/Nouveau dossier/zAdd/ : Aucun fichier ou dossier de ce type
Dernière modification par Morrisson (Le 17/12/2015, à 19:24)
#4 Le 17/12/2015, à 19:27
- pingouinux
Re : [Résolu] cd dans un script bash
C'est guillaume ou alexandre ?
Quel est le retour de
find /home -iname zAdd
et de
head -5 fichier.txt
Hors ligne
#5 Le 17/12/2015, à 19:41
- Morrisson
Re : [Résolu] cd dans un script bash
Le retour de head -5 fichier.txt
jeudi 17 décembre 2015, 19:21:01 (UTC+0100)
/home/alexandre/Mes Scripts/Nouveau dossier/
/home/alexandre/Mes Scripts/Nouveau dossier/zAdd/
/home/alexandre/Mes\ Scripts/Nouveau\ dossier/
/home/alexandre/Mes Scripts/Nouveau dossier/zAdd/
et celui de find /home -iname zAdd:
/home/alexandre/Mes Scripts/Nouveau dossier/zAdd
#6 Le 17/12/2015, à 19:47
- pingouinux
Re : [Résolu] cd dans un script bash
Encore quelques commandes
find /home -type d -iname zAdd
cat ./Tscript.sh
./Tscript.sh
Hors ligne
#7 Le 17/12/2015, à 20:04
- Zakhar
Re : [Résolu] cd dans un script bash
Oui bizarre parce que si je fais la même manipulation, ça fonctionne !
En tout cas, si tu peux faire autrement, un bon conseil est d'éviter les espaces ou autres joyeusetés (comme les retour charriot : \n ... oui on peut faire, c'est pas illégal en ext4) dans les noms de répertoires et de fichiers. Parce que dès que tu as ce genre de choses, il faut être super attentif dans les scripts à tout bien "quoter" comme il faut !
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#8 Le 17/12/2015, à 20:07
- Morrisson
Re : [Résolu] cd dans un script bash
Pour -find /home -type d -iname zAdd
find: "/home/administrateur/.config": Permission non accordée
find: "/home/administrateur/.kde/share/apps/konqueror": Permission non accordée
find: "/home/administrateur/.kde/share/apps/ktp": Permission non accordée
find: "/home/administrateur/.kde/share/apps/amarok": Permission non accordée
find: "/home/administrateur/.kde/share/apps/dolphin": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kded": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kconf_update": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kres-migrator": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kabc": Permission non accordée
find: "/home/administrateur/.kde/share/apps/klipper": Permission non accordée
find: "/home/administrateur/.kde/share/apps/remoteview": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kssl": Permission non accordée
find: "/home/administrateur/.kde/share/apps/akonadi_migration_agent": Permission non accordée
find: "/home/administrateur/.kde/share/apps/RecentDocuments": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kpeople": Permission non accordée
find: "/home/administrateur/.kde/share/apps/activitymanager": Permission non accordée
find: "/home/administrateur/.kde/share/apps/knewstuff3": Permission non accordée
find: "/home/administrateur/.kde/share/apps/plasma-desktop": Permission non accordée
find: "/home/administrateur/.kde/share/apps/nepomuk": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kfileplaces": Permission non accordée
find: "/home/administrateur/.kde/share/apps/libmuon": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kscreen": Permission non accordée
find: "/home/administrateur/.kde/share/apps/okular": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kcookiejar": Permission non accordée
find: "/home/administrateur/.kde/share/apps/desktoptheme": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kpdf": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kate": Permission non accordée
find: "/home/administrateur/.kde/share/apps/kaddressbook": Permission non accordée
find: "/home/administrateur/.kde/share/kde4": Permission non accordée
find: "/home/administrateur/.kde/share/config": Permission non accordée
find: "/home/administrateur/.kde/share/autostart": Permission non accordée
find: "/home/administrateur/.watershed": Permission non accordée
find: "/home/administrateur/.gnome2_private": Permission non accordée
find: "/home/administrateur/.gconf": Permission non accordée
find: "/home/administrateur/.local/share/rhythmbox": Permission non accordée
find: "/home/administrateur/.local/share/keyrings": Permission non accordée
find: "/home/administrateur/.local/share/akonadi/db_data/mysql": Permission non accordée
find: "/home/administrateur/.local/share/akonadi/db_data/akonadi": Permission non accordée
find: "/home/administrateur/.local/share/akonadi/db_data/performance_schema": Permission non accordée
find: "/home/administrateur/.local/share/totem": Permission non accordée
find: "/home/administrateur/.local/share/unity-webapps": Permission non accordée
find: "/home/administrateur/.local/share/nautilus": Permission non accordée
find: "/home/administrateur/.local/share/applications": Permission non accordée
find: "/home/administrateur/.local/share/telepathy": Permission non accordée
find: "/home/administrateur/.local/share/Trash": Permission non accordée
find: "/home/administrateur/.local/share/evolution": Permission non accordée
find: "/home/administrateur/.local/share/gvfs-metadata": Permission non accordée
find: "/home/administrateur/.local/share/sounds": Permission non accordée
find: "/home/administrateur/.local/share/zeitgeist": Permission non accordée
find: "/home/administrateur/.compiz": Permission non accordée
find: "/home/administrateur/.gnome2": Permission non accordée
find: "/home/administrateur/.adobe": Permission non accordée
find: "/home/administrateur/.mozilla": Permission non accordée
find: "/home/administrateur/.cache": Permission non accordée
find: "/home/administrateur/.macromedia": Permission non accordée
find: "/home/administrateur/.dbus": Permission non accordée
/home/alexandre/Mes Scripts/Nouveau dossier/zAdd
-cat ./Tscript.sh
date>Taggtemp.txt
echo "`pwd`/">>Taggtemp.txt
echo "`pwd`/zAdd/">>Taggtemp.txt
echo `sed -n '2p' Taggtemp.txt` | sed 's/ /\\ /g' >>Taggtemp.txt
echo `sed -n '3p' Taggtemp.txt` | sed 's/ /\\ /g' >>Taggtemp.txt
abcd=`sed -n '4p' Taggtemp.txt`
Zadd=`sed -n '5p' Taggtemp.txt`
echo "$Zadd"
cd "$Zadd"
-./Tscript.sh
/home/alexandre/Mes\ Scripts/Nouveau\ dossier/zAdd/
./Tscript.sh: ligne 13 : cd: /home/alexandre/Mes\ Scripts/Nouveau\ dossier/zAdd/: Aucun fichier ou dossier de ce type
PS : j'avais modifié mon fichier comme vous me l'avez indiqué mais cela ne fonctionner pas donc j'ai "Ctrl+z".
#9 Le 17/12/2015, à 20:20
- pingouinux
Re : [Résolu] cd dans un script bash
Bah oui, évidemment, tu rajoutes des \. J'ai modifié ton script, et laissé les anciennes lignes en commentaire.
date>Taggtemp.txt
echo "`pwd`/">>Taggtemp.txt
echo "`pwd`/zAdd/">>Taggtemp.txt
#echo `sed -n '2p' Taggtemp.txt` | sed 's/ /\\ /g' >>Taggtemp.txt
#echo `sed -n '3p' Taggtemp.txt` | sed 's/ /\\ /g' >>Taggtemp.txt
#abcd=`sed -n '4p' Taggtemp.txt`
#Zadd=`sed -n '5p' Taggtemp.txt`
Zadd=`sed -n '3p' Taggtemp.txt`
echo "$Zadd"
cd "$Zadd"
Hors ligne
#10 Le 17/12/2015, à 20:34
- Morrisson
Re : [Résolu] cd dans un script bash
Merci merci merci vous êtes super Super bonne soirée a toi
#11 Le 17/12/2015, à 20:43
- pingouinux
Re : [Résolu] cd dans un script bash
Ceci dit, je rejoins l'avis de Zakhar en #7 :
En évitant les caractères bizarres (y compris les espaces) dans les noms de fichiers, on s'épargne bien des tracas.
D'un autre côté, le fait de les utiliser oblige à fignoler les scripts.
Dernière modification par pingouinux (Le 21/12/2015, à 08:58)
Hors ligne
#12 Le 21/12/2015, à 23:09
- Zakhar
Re : [Résolu] cd dans un script bash
Ceci dit, je rejoins l'avis de Zakhar en #7 :
En évitant les caractères bizarres (y compris les espaces) dans les noms de fichiers, on s'épargne bien des tracas.
D'un autre côté, le fait de les utiliser oblige à fignoler les scripts.
Oui, avec d'autres "pièges" du genre commencer le nom d'un fichier par un "-" ou "--" (ce qui est 100% légal également !)
Du coup si tu fais pas gaffe, que tu passes le nom comme ça à une commande, elle va croire que c'est une option... la cata !..
Dernière modification par Zakhar (Le 21/12/2015, à 23:10)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne