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 14/01/2008, à 23:03

kooma

Démarrer un script à l'entrée dans un dossier

Bonjour à tous !

Alors voila, j'ai fait un petit script sh pour les connexions à curlftpfs.
C'est organisé ainsi :
/home/fred/monftp1
/home/fred/monftp2

et le script marche ainsi :
connectftp monftp1
*Connexion à monftp1....

Le truc, c'est que j'aimerai que ce script se lance lorsque on entre dans un dossier.
Genre :

cd /home/fred/monftp1
*Connexion à monftp1...

Est ce possible ?

Hors ligne

#2 Le 15/01/2008, à 00:52

Link31

Re : Démarrer un script à l'entrée dans un dossier

Tu peux mettre quelque chose comme ça dans ton ~/.bashrc :

while (true); do if [[ "$(ls -l /proc/$(ps | grep $(basename $0) | head -n1 | awk '{print $1}')/cwd | awk -F "-> " '{print $NF}')" == "/home/fred/monftp1" ]]; then connectftp monftp1; exit; fi; sleep 1; done &

Hors ligne

#3 Le 16/01/2008, à 03:58

kaworu

Re : Démarrer un script à l'entrée dans un dossier

@links31
Heu. à  chaques sessions bash de son user, t'aura un processus lancé hmm

Avec zsh c'est plutà´t simple (fichier $HOME/.zshrc)

function precmd {
    case "$PWD" in
        $HOME/monftp[0-9]) connectftp $(basename "$PWD")
    esac
}

à  chaques fois que ton prompt apparait, ce code est exécuté. A toi de gérer dans ton script conectftp de ne pas ouvrir de connection sur ftp1 s'il y'en a déjà  une par exemple.


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#4 Le 16/01/2008, à 04:12

benjou

Re : Démarrer un script à l'entrée dans un dossier

pourquoi pas faire l' inverse: un script qui, d' abord te monte tes partages ftp avec curlftpfs, puis t' ouvre nautilus ou la console ou ce que tu veux dans ce partage.

Donc tu ne clicke plus, ni ne cd dans ton dir, mais tu lance le script qui te fait de toute facon atterir dans ton dir a la fin...

en exemple, voila un script qui est sur mon bureau: ilo me permet de monter et d' ouvrir mon partage reseau (si il n' est pas deja monté) et le démonter (si il est déja monté). J'utilise sshfs mais le principe est le meme...


#!/bin/bash

if ! cat /etc/mtab|grep buffalo
then

sshfs login@ipserveur:/mnt/disk1 /media/buffalo
nautilus /media/buffalo
else
fusermount -u /media/buffalo
fi

Dernière modification par benjou (Le 16/01/2008, à 04:15)


écrasons l'infâme

Hors ligne

#5 Le 16/01/2008, à 11:11

kaworu

Re : Démarrer un script à l'entrée dans un dossier

@benjou Un chat mort !
cat $fichier | grep $pattern => grep $pattern $fichier


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#6 Le 16/01/2008, à 15:46

Link31

Re : Démarrer un script à l'entrée dans un dossier

kaworu a écrit :

@links31
Heu. à  chaques sessions bash de son user, t'aura un processus lancé hmm

à€ chaque session interactive, oui, mais c'était bien le but il me semble.

Quant aux sessions non-interactives, chez moi j'ai ça au début de mon .bashrc, j'imagine que c'est pareil sous Ubuntu :

if [[ $- != *i* ]] ; then
        return
fi

Sinon, c'est toujours possible de lancer la commande seulement quand elle est nécessaire, ou dans le prompt, évidemment.

Dernière modification par Link31 (Le 16/01/2008, à 15:47)

Hors ligne

#7 Le 17/01/2008, à 04:01

benjou

Re : Démarrer un script à l'entrée dans un dossier

@kaworu

effectivement, pov' matou!


écrasons l'infâme

Hors ligne

#8 Le 23/01/2008, à 15:27

kooma

Re : Démarrer un script à l'entrée dans un dossier

kaworu a écrit :

@links31
Heu. à  chaques sessions bash de son user, t'aura un processus lancé hmm

Avec zsh c'est plutà´t simple (fichier $HOME/.zshrc)

function precmd {
    case "$PWD" in
        $HOME/monftp[0-9]) connectftp $(basename "$PWD")
    esac
}

à  chaques fois que ton prompt apparait, ce code est exécuté. A toi de gérer dans ton script conectftp de ne pas ouvrir de connection sur ftp1 s'il y'en a déjà  une par exemple.

Nickel, je vais essayer et régler ce script alors !
J'aurais bien essayé le script bash mais j'ai mis zsh par défaut sur ma machine.... Tellement plus pratique !

J'en profite pour poser trois questions au sujet de zsh :

-J'ai un bug étrange: quand je remonte dans l'historique avec la touche UP, le curseur ne se met pas en fin de ligne, mais en début de ligne, ce qui m'embête un poil. Y'a-t-il un moyen d'éviter ca ?
-De même, j'ai regardé vite fait pour mettre les couleurs sur le prompt, mais ca ne marche pas : il m'écrit la couleur directement (par ex, il m'imprime direct dans le prompt "%{$fg[yellow]%}")).
-Enfin, y'a-t-il un petit mémo des raccourcis dispos pour zsh sur le net ?

Merci de votre aide.

Hors ligne