Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#1 Le 17/12/2015, à 19:02

Morrisson

[Résolu] cd dans un script bash

Bonsoir,
J'ai besoin de votre aide ! wink . 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. big_smile Merci d''avance et bonne soirée à vous . smile

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 hmm . Sinon merci c'est super cool d'avoir répondu si rapidement et de m'aider.  cool

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 wink 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 big_smile Super bonne soirée a toi smile

#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

pingouinux a écrit :

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 !.. lol

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