Pages : 1
#1 Le 22/09/2013, à 00:01
- Nietzsche14
Script cd
Bonjour,
Je voudrais réaliser un script qui me permette de me rendre dans un dossier.
J'essaie donc cela
cd /home/pierre/travail/info/
Le problème est que sur mon terminal, l'invite de commande n'est pas modifié. Je ne sais pas comment faire pour que ce script ait un effet sur mon terminal.
Si vous pouvez m'aider je vous en serais reconnaissant
Merci, au revoir.
Hors ligne
#2 Le 22/09/2013, à 00:43
- tiramiseb
Re : Script cd
Salut,
Un script est exécuté dans un nouveau processus et non dans le shell en cours de fonctionnement.
Par conséquent, la commande "cd" utilisée dans un script ne se répercute pas sur le shell utilisateur.
Si tu veux exécuter le contenu d'un script au sein de ton shell en cours, il faut utiliser la commande "source" :
source script.sh
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 22/09/2013, à 03:34
- nesthib
Re : Script cd
Est-il bien utile de faire un script juste pour changer de dossier ? Voici plusieurs solutions alternatives :
Utiliser l'autocomplétion grâce à la touche TAB : cd ~/i[tab]
Utiliser un alias :
alias go='cd /home/pierre/travail/info/'
(à placer dans le fichier ~/.bash_aliases. Puis utiliser la commande « go »)
utiliser une fonction s'il y a plusieurs dossiers
function go { case $1 in tmp) cd /tmp ;; im) cd ~/Images ;; doc) cd ~/Documents ;; *) cd ~ ;; esac }
Puis « go im » pour aller dans ~/Images, etc. (la fonction est à placer dans ~/.bash_aliases)
Une dernière solution, un peu plus élaborée et évolutive :
function ADD { if [[ $1 == "-l" ]]; then cat ~/.CD return 0 elif [ -d "$1" ]; then echo "$1" >> ~/.CD else echo "$PWD" >> ~/.CD fi sort ~/.CD -o ~/.CD } function CD { [ $# -eq 0 ] && cd ~/ || cd "$(grep -m1 -- $1 ~/.CD 2>/dev/null)" }
qui te permettra de gérer dynamiquement une liste de dossiers favoris. Par exemple si tu fais :
ADD /home/pierre/travail/info/
Tu pourras à l'avenir te rendre dans le dossier en tapant :
CD tra
ou
CD inf
(le script cherche dans la liste des favoris le premier nom qui correspond au motif donné en argument)
les fonctions sont à placer dans ~/.bash_aliases
J'espère que ces quelques pistes te seront utiles.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
Pages : 1