#1 Le 23/01/2008, à 16:36
- fpan
[solutionné autrement] script pour déplacer un film vu
Bonjour,
je vous appelle a mon secours car je ne maitrise pas (encore) les scripts mais je m'y attèle.
mon but : déplacer un fichier vers sonrépertoire/vus en appuyant sur un bouton de ma télécommande
le script nautilus marche en le lançant avec clic droit/script :
#!/bin/sh
fichier="$1"
name=`basename "$1" `
dir=`dirname "$1"`
cd $dir
mv "$fichier" vus/"$name"
il est appelé dans mon fichier lircrc par :
begin
prog = irexec
button = i
config = sh /home/moi/.gnome2/nautilus-scripts/bouger.sh
end
et là ça marche pas :
mv: la cible `vus/' n'est pas un répertoire: Aucun fichier ou répertoire de ce type
apparemment il ne prend pas le fichier sélectionné comme variable.
D'o๠mes questions : comment lui dire de le prendre comme variable?
mon script tient-il la route?
vous moquez pas, je débute
merci de votre aide!
Dernière modification par fpan (Le 30/01/2008, à 14:52)
Hors ligne
#2 Le 23/01/2008, à 16:43
- Sciensous
Re : [solutionné autrement] script pour déplacer un film vu
le répertoire vus existe --til ?
remarque : je préfère ${name} à "$name"
#3 Le 23/01/2008, à 17:04
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
merci de ta rapidité
le répertoire vus existe dans les répertoires ou se situent les films
pas dans mon répertoire perso, d'o๠l'erreur, je pense
mais j'aimerais que le script se déplace vers tout répertoire dans lequel je sélectionne un film et o๠j'ai créé un répertoire /vus
Le script fonctionne en local avec le menu contextuel clic droit/script
remarque : je préfère ${name} à "$name"
Je ne connais pas la différence?
vraiment je débute, toute explication est bonne a prendre
Hors ligne
#4 Le 23/01/2008, à 17:54
- lut!n
Re : [solutionné autrement] script pour déplacer un film vu
Il fonctionne en local car le dossier dans lequel tu selctionnes tes films vus est aussi le dossier contenant le dossier 'vus' . dans ton script, tu dois spécifier le path complet du dossier des films vus si tu veux qu'il marche de n'importe quel endroit d'ou tu l'appelle
sinon, "$name" et ${name} reviennent globalement a la meme chose. Il faut cependant noter que ${name} n'est pas adapté pour les noms de fichiers qui contiennent un espace, il faut utiliser "$name" dans ce cas, comme tu l'as fait
a+
Hors ligne
#5 Le 23/01/2008, à 18:04
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
salut lutin, merci a toi de ta promptitude
ce que j'essaye de faire c'est de déplacer dans des dossiers "vus" différents
peut-être dois-je spécifier une variable a mon script lancé dans .lircrc
config = sh /home/moi/.gnome2/nautilus-scripts/bouger.sh variable
quelle variable correspondrai à "le fichier sélectionné dans la fenêtre active de nautilus??
Hors ligne
#6 Le 23/01/2008, à 18:06
- Gari
Re : [solutionné autrement] script pour déplacer un film vu
Effectivement, plutà´t que de faire
#cd $dir
fait plutà´t
#mv $dir/"$fichier" $dir/vus/"$name"
Il est à noter qu'en général, tu n'as pas besoin d'utiliser la commande "cd" dans un script.
Quand au problème de "vus" existant ou pas, tu peux tester avant le transfert pour voir s'il existe et le créer le cas échéant:
#[[ ! -d $dir/vus ]] && mkdir $dir/vus
Finalement, la variable $name ne me parait pas utile. Lorsque le nom de fichier cible n'est pas indiqué lors d'un transfert, il prend automatiquement le nom de fichier source (ce que tu fais a la main avec la variable $name).
Tu peux remplacer ton transfert par:
#mv $dir/"$fichier" $dir/vus/
Petit conseil aussi, pour le principe : vérifie l'existence de $1 avant de le transférer, juste au cas oà¹. Je te laisse faire, en reprenant l'exemple du test d'existence du répertoire que je t'ai donné un peu plus haut.
(bon dans ton cas, je suppose que $1 existe forcément mais c'est assez important de s'habituer à tester les arguments passés en paramétres des scripts).
Hors ligne
#7 Le 23/01/2008, à 18:14
- lut!n
Re : [solutionné autrement] script pour déplacer un film vu
pour faire un simple test d'existence du dossier, [ -d ] c'est mieux que [[ -d ]] (qui est un opérateur propre aux shells assez évolués comme bash).
A part ça comme l'a dit gary c'est parceque ton dossier 'vus' n'existe pas.
Par contre pour récupérer le nom du fichier sélectionné ....et bien je me demande si c'est possible de l'appeler avec un argument variable en utilisant irexec. j'ai un gros, gros doute
Hors ligne
#8 Le 23/01/2008, à 18:23
- Yannick_LM
Re : [solutionné autrement] script pour déplacer un film vu
pour faire un simple test d'existence du dossier, [ -d ] c'est mieux que [[ -d ]] (qui est un opérateur propre aux shells assez évolués comme bash).
Surtout que comme tu as mis #!/bin/sh, ton script ne sera pas interprété par bash, mais dash (sous ubuntu depuis 6.10)
et tu vas te retrouver avec :
test.sh: 3: [[: not found
Dernière modification par Yannick_LM (Le 23/01/2008, à 18:24)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#9 Le 23/01/2008, à 18:24
- Gari
Re : [solutionné autrement] script pour déplacer un film vu
Ah ouais pardon, je suis abonné au [[..]] et au ksh. Donc forcément
Par contre pour récupérer le nom du fichier sélectionné ....et bien je me demande si c'est possible de l'appeler avec un argument variable en utilisant irexec. j'ai un gros, gros doute
Comme quoi tester la variable d'entrée est bien utile :=)
Dernière modification par Gari (Le 23/01/2008, à 18:25)
Hors ligne
#10 Le 23/01/2008, à 18:32
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
oui, oui,
c'est là mon problême central : définir "le fichier sélectionné dans la fenêtre active de nautilus" comme ma variable, le script appelé par nautilus le fait mais pas le script appelé par irexec.
elle peut être intégrée au script plutôt que par irexec mais il me faut pouvoir appeler "le fichier sélectionné dans la fenêtre active de nautilus" sinon ça me sert a rien
désolé si ma clarté laisse a désirer et merci de vous préoccupper quand même de mes problèmes
Hors ligne
#11 Le 25/01/2008, à 18:12
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
vraiment, aucun moyen de définir "le fichier sélectionné dans la fenêtre active de nautilus" comme une variable ???
sinon merci gari, j'adopte
#mv $dir/"$fichier" $dir/vus/
pour la verif d'existence du fichier, ça donnerai :
[ ! -d $dir/vus ] && mkdir $dir/vus
n'est-ce pas.
merci en tout cas de ne pas me laisser tomber!
en même temps si ya pas de solution, ya pas!
Hors ligne
#12 Le 26/01/2008, à 08:32
- Gari
Re : [solutionné autrement] script pour déplacer un film vu
pour la verif d'existence du fichier, ça donnerai :
[ ! -d $dir/vus ] && mkdir $dir/vus
n'est-ce pas.
Non ça c'est ce qui permet de vérifier que le répertoire "vus" existe, et le cas échant le créer.
Si tu veux faire un test d'existence de fichier, alors tu dois chercher un peu (on va pas tout te dire, non plus ). Allez, je te donne un petit lien qui pourrait t'aider à débuter : http://www.ac-creteil.fr/reseaux/system … ation.html.
Juste pour clarifier ma commande, elle est équivalente à
if [ ! -d $dir/vus ] then
mkdir $dir/vus
fi
Le fait que tu crois que la commande "mkdir" puisse faire partie d'un simple test d'existence de fichier me fait peur, cela dit
Hors ligne
#13 Le 26/01/2008, à 20:15
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
J'ai tapé fichier a la place de dossier
faut que je me relise mieux!!
Sinon, si tu as peur accroches-toi, je peux faire pire,
je suis vraiment un gros gros débutant
même si j'avais déjà vu la commande mkdir, mais faut que ça rentre...
merci en tout cas pour le lien, je prend ma boite d'aspro et je m'y met
sinon je radote : pas moyen de définir "le fichier sélectionné dans la fenêtre active de nautilus" comme une variable ???
Hors ligne
#14 Le 28/01/2008, à 10:32
- Gari
Re : [solutionné autrement] script pour déplacer un film vu
sinon je radote : pas moyen de définir "le fichier sélectionné dans la fenêtre active de nautilus" comme une variable ???
Je ne pourrai pas t'aider, je suis l'un de ces fana de la ligne de commande qui ne savent même pas ce que c'est que "nautilus" ou "konqueror". Mon navigateur de fichier se nomme "cdls"
Hors ligne
#15 Le 28/01/2008, à 10:47
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
Je progresse : j'ai compris une vanne de scripteur
Hors ligne
#16 Le 30/01/2008, à 14:51
- fpan
Re : [solutionné autrement] script pour déplacer un film vu
En fait j'ai fait autrement : un bouton pour couper le fichier,
je me déplace dans /vus, un bouton pour coller
c'est moins performant mais ca marche!
merci pour votre aide.
Hors ligne