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 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 smile

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

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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne