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

lut!n a écrit :

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

wink

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 smile

lut!n a écrit :

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

fpan a écrit :

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 tongue). 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 smile

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

fpan a écrit :

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" wink

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