Thunar-action variables

Postez ici vos scripts Bash, Python, etc.
Répondre
xavkde182
Messages : 12
Enregistré le : sam. 8 juil. 2017 09:59

Thunar-action variables

Message par xavkde182 »

Bonjour,
J'ai écrit un script inutile en l'état, pour imprimer en n&b des pdf couleurs plutôt qu'en en niveaux de gris qui ne sont pas de bonne qualité sur ma vieille HP880C.

Code : Tout sélectionner

#!/bin/bash
#script pdfcolor-to-bw.sh
myfile="Conditions_Hertz.pdf[0]"
mydir="/home/denis/Documents/"
myoutfile="testherts"
echo $myfile
echo $mydir
echo $myoutfile
#zenity --info --title='filename' --text="$myfile" --timeout=60 2>/dev/null
# imagemagick cde
convert -density 150  -type Grayscale -threshold 70% "${mydir}${myfile}" "/home/denis/Documents/Doc-to-print-N&B/"${myfile}

echo "${mydir}${myfile}"
echo "/home/denis/Documents/Doc-to-print-N&B/"${myfile}
L'objectif est de lancer ce script avec Thunar-action qui returne des variables lors d'un clic droit sur un fichier.
Je ne sais pas comment récupérer ces variables %d %n dans mon script. J'ai beaucoup lu, essayé différentes syntaxes rien n'y fait.
Image

Ci-dessous l'action Thunar et le script qui à besoin d'un coup de main pour fonctionner.

Code : Tout sélectionner

#!/bin/bash
#script thpdfcolor-to-bw.sh
myfile=$2
mydir=$1
myoutfile="testherts"
echo $myfile
echo $mydir
echo $myoutfile
zenity --info --title='filename' --text="$myfile" --timeout=60 2>/dev/null
# imagemagick cde
convert -density 150  -type Grayscale -threshold 70% "${mydir}${myfile}" "/home/denis/Documents/Doc-to-print-N&B/"${myfile}

echo "${mydir}${myfile}"
echo "/home/denis/Documents/Doc-to-print-N&B/"${myfile}
La question est donc comment récupérer les variables %d %n
merci pour votre aide.

Image
Gigabyte B360M-D3H 6 i5-8500 M2 256Go Ram8Go 2 écrans
Kernel: 4.15.0-33- x86_64 bits: 64 Xfce 4.12.3 Linux Mint 21
Samsung NP310 intel N550 SSD250Go Ram 2Go Mint 13.2 /Win7
Lenovo 320S-13IKB i5-8250 Ram 8Go M2 256Go
Mint Tara ISO V2 en dual boot Win10 bios UEFI

Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Thunar-action variables

Message par cyrille »

Yep

Je viens de tester en vitesse

pour lancer un terminal dans thunar, faut passer par une commande du style

Code : Tout sélectionner

xfce4-terminal -H -x /home/ragnarok/thunar.sh %D %f %F %f 
(sous un environnement xfce4 sinon tu adaptes(mais c'est thunar, donc je pense xfce pour toi aussi ;)

Image

Donc le terminal suivi du chemin absolu vers le scripts et les arguments . Et ce sont sur ces arguments que tu positionneras %D ùd %F %f.....
(l'option -H de xfce4-terminal permet de garder le shell ouvert après son action)

Dans mon exemple, le script je l'ai nommé thunar.sh

Les arguments que tu passes, tu n'as alors plus qu'à les récupérer dans le script

Voila c'est ce que j'ai collé dans le script (attention fais très à l'arrache, tu adapteras)

Code : Tout sélectionner

$ cat thunar.sh 
#!/bin/bash
echo "test thunar action"


echo "Nombre d'arguments $#"


[ $# != 0 ] && printf "%s\n" "$@"

Donc $# --> recupere le nombre d'arguments

[ $# != 0 ] && printf "%s\n" "$@" --> liste les arguments

Si tu veux simplement récupérer le second c'est $2 ...

Et le résultat

Image

A me relire pas sur d'avoir été très clair ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Thunar-action variables

Message par cyrille »

Lu très en vitesse
pourquoi tantot tu utlises $tavar et tantot ${tavar} ?

Idem

Code : Tout sélectionner

echo "/home/denis/Documents/Doc-to-print-N&B/"${myfile}
Tu utilises des doubles quotes si la $var est à l'intérieur elle sera interprété, pas besoin de la sortir

Regarde dans mon script, la var est bien entre double quote

Code : Tout sélectionner

echo "Nombre d'arguments $#"
ou

Code : Tout sélectionner

echo 'Nombre d arguments ' $#
Enfin pas une critique, juste pour adopter les bonnes pratiques, ça évite de chercher des erreurs par la suite ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

xavkde182
Messages : 12
Enregistré le : sam. 8 juil. 2017 09:59

Re: Thunar-action variables

Message par xavkde182 »

Merci Cyrille pour cette réponse.
Il y a un mécanisme que je comprends pas : pourquoi ouvrir un terminal ?
J'ai vu des exemples ou le script s'executait après le clic droit dans Thunar-action.(mais pas d'exemple avec passage de paramètre)
J'ai fait qq corrections mais je ne récupère pas les paramètres %d et %n dans mes variables myfile et mydir.
Objectif, un clic droit sur un fichier pdf dans le gestionnaire de fichier Thunar doit convertit ce fichier.
De plus comme le script est executé à partir de Thunar je ne vois pas mes echo.
L'execution dans un terminal me donne 0 argument. ce qui semble normal.
Gigabyte B360M-D3H 6 i5-8500 M2 256Go Ram8Go 2 écrans
Kernel: 4.15.0-33- x86_64 bits: 64 Xfce 4.12.3 Linux Mint 21
Samsung NP310 intel N550 SSD250Go Ram 2Go Mint 13.2 /Win7
Lenovo 320S-13IKB i5-8250 Ram 8Go M2 256Go
Mint Tara ISO V2 en dual boot Win10 bios UEFI

xavkde182
Messages : 12
Enregistré le : sam. 8 juil. 2017 09:59

Re: Thunar-action variables

Message par xavkde182 »

le script avec qq corrections.

Code : Tout sélectionner

#!/bin/bash
#script thpdfcolor-to-bw.sh
echo "test thunar action"
echo "Nombre d'arguments $#"
[ $# != 0 ] && printf "%s\n" "$@"
myfile=$2
mydir=$1
echo $myfile
echo $mydir
zenity --info --title='filename' --text=$# --timeout=60 2>/dev/null

convert -density 150  -type Grayscale -threshold 70% "$mydir$myfile" "/home/denis/Documents/Doc-to-print-N&B/$myfile"

echo $mydir$myfile
echo "/home/denis/Documents/Doc-to-print-N&B/$myfile"

#zenity --info --title='document converti' --text='en noir et blanc effectué' --timeout=60 2>/dev/null
Gigabyte B360M-D3H 6 i5-8500 M2 256Go Ram8Go 2 écrans
Kernel: 4.15.0-33- x86_64 bits: 64 Xfce 4.12.3 Linux Mint 21
Samsung NP310 intel N550 SSD250Go Ram 2Go Mint 13.2 /Win7
Lenovo 320S-13IKB i5-8250 Ram 8Go M2 256Go
Mint Tara ISO V2 en dual boot Win10 bios UEFI

Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Thunar-action variables

Message par cyrille »

Il y a un mécanisme que je comprends pas : pourquoi ouvrir un terminal ?
Le lanceur d'action de thunar n'est pas un terminal, il ne sait interpréter un shebang, il faut donc lui dire avec quel programme / utilitaire ouvrir ton fichier (ici un script).

J'ai vu des exemples ou le script s'executait après le clic droit dans Thunar-action.(mais pas d'exemple avec passage de paramètre)
Sans doute que ces utilisateurs ont configuré xfce de façon globale en disant : "si fichier inconnu tu le lances dans un terminal" mais ce comportement peut induire certains soucis.

J'ai fait qq corrections mais je ne récupère pas les paramètres %d et %n dans mes variables myfile et mydir.
Faudrait voir la ligne exacte que tu passes en action. Tu peux me la filer ?

De plus comme le script est executé à partir de Thunar je ne vois pas mes echo.
Rajoute l'option -H afin de voir tes sorties
Ou redirige la sortie vers un fichier de log que tu pourras lire pour voir comment évolue tes variables
exmple

Code : Tout sélectionner

echo $(date) " --- aze" >> test.txt

Code : Tout sélectionner

cat test.txt
jeu. 15 sept. 2022 08:09:17 CEST  --- aze
++
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12399
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Thunar-action variables

Message par cyrille »

Tiens si intéressé un testeur de shell script. https://www.shellcheck.net/
Il te dira si tu as des bugs dans ton code ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre