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.

#26 Le 27/12/2024, à 16:50

Watael

Re : script nautilus ne demarre pas selon selection

oui, c'est ça. Mais comment accéder à ce dont parle Tawal ?


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#27 Le 27/12/2024, à 17:02

Tawal

Re : script nautilus ne demarre pas selon selection

Il me semble que c'est via nautilus-config-tool.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#28 Le 27/12/2024, à 17:20

Frankkunst

Re : script nautilus ne demarre pas selon selection

Bonsoir à tous

iznobe a écrit :

c' est pour utiliser le script en mode graphique , en faisant un clic droit a partir de nautilus , sans avoir à ouvrir un terminal .

le script est alors lancé via nautilus , comme un addon ( personnalisé ) .

Comme je l'ai dit dans le premier poste mon script fonctionne parfaitement en console, mais j'aimerai en faire profiter ceux qui ne sont pas à l'aise face au terminal, comme ma fille .
Et donc avoir un outil à disposition dans le gestionnaire de fichier serait le top


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#29 Le 27/12/2024, à 18:21

Watael

Re : script nautilus ne demarre pas selon selection

Tawal a écrit :

Il me semble que c'est via nautilus-config-tool.

boh, j'ai pas ça, moi.
je ne le vois pas non plus dans les dépôts.
ça pourrait être une "extension" Gnome ?


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#30 Le 27/12/2024, à 18:24

Watael

Re : script nautilus ne demarre pas selon selection

Frankkunst a écrit :

Comme je l'ai dit dans le premier poste mon script fonctionne parfaitement en console

c'est bizarre. tu l'exécutes comment en ligne de commande ?
si les arguments sont les mêmes, alors la taille le nombre de caractères de la ligne de commande devrait être sensiblement le même, et ça devrait aussi échouer.

qui plus est, $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS n'est pas disponible en ligne de commande, alors comment afficherFichier() peut-elle fonctionner ?

Dernière modification par Watael (Le 27/12/2024, à 18:33)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#31 Le 27/12/2024, à 19:09

Frankkunst

Re : script nautilus ne demarre pas selon selection

Bonsoir Watael,
Pour être clair, j'ai créé un premier script pour l'utiliser dans un terminal, quand j'étais dans un dossier de photo sous Nautilus , un clic droit entre des vignettes puis "ouvrir dans un terminal" .
J'étais dans le dossier et n'avais plus qu'à appeler mon script .
Et j'ai eu l'idée de pouvoir l'appeler directement depuis Nautilus, ayant lu sur la doc de script-nautilus que la sélection de fichier était stockée dans la variable "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ; j'ai donc modifié le script en conséquence !
Je crois que je vais passer le sujet en résolu, les extensions type "nautilus-actions-config-tool" "filemanager-actions" et "nautilus-extension-fma" ayant été supprimé des dépôts ... je ne vois pas comment modifier cette limitation ?!...
Déjà un grand merci à vous


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#32 Le 27/12/2024, à 19:37

Watael

Re : script nautilus ne demarre pas selon selection

ce n'est alors pas [résolu], mais [abandonné]


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#33 Le 27/12/2024, à 19:55

Frankkunst

Re : script nautilus ne demarre pas selon selection

Si tu veux, mais on a quand même réponse à la question !
Le problème vient d'une limitation interne à Nautilus ...
Je vois encore un peu ce qu'il est possible de faire  neutral
Bonne soirée


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#34 Hier à 01:18

Watael

Re : script nautilus ne demarre pas selon selection

une réponse, mais pas de solution, c'est toi qui voit, finalement. smile

mais je ne suis toujours pas convaincu qu'il s'agit d'une limitation de nautilus, puisque le message d'erreur concernant la longueur de la liste des arguments vient de /bin/sh

Tawal a écrit :

Par défaut, si [les propriétés min et max items] ne sont pas spécifiées, min_items est fixé à 1 et max_items est illimité.

s'il s'agissait d'une limitation de nautilus cette dernière limite serait évoquée.
je suppose.

Dernière modification par Watael (Hier à 01:31)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#35 Hier à 01:51

Watael

Re : script nautilus ne demarre pas selon selection

démo:

# cat /tmp/test.sh 
#!/bin/bash
#
maFonc () 
{ 
    for f in "$@";
    do
        echo "$f";
    done
}
maFonc "$@"

# chmod +x /tmp/test.sh
# shopt -s globstar
# /tmp/test.sh /**
-bash: /tmp/test.sh: Liste d'arguments trop longue

je le fais en root parce que je n'ai pas assez de fichiers dans mon répertoire personnel.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#36 Hier à 06:33

Tawal

Re : script nautilus ne demarre pas selon selection

Dans ta démo, peux-tu ajouter avant la boucle for :

lg="$*"
echo "nombres de caractères : ${#lg}"

Ceci afin de vérifier la longueur de la chaîne passée.
Mais possible aussi que l'erreur soit levée lors de l'interprétation de la ligne de commande.

Dernière modification par Tawal (Hier à 06:35)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#37 Hier à 07:20

Watael

Re : script nautilus ne demarre pas selon selection

non, je ne peux pas.
enfin, si, je pourrais, mais le script n'est tout simplement pas exécuté.

l'erreur [est] levée lors de l'interprétation de la ligne de commande.

c'est ça.

notez que le problème, c'est le passage des arguments sur la ligne de commande, parce que cette version fonctionne :

#!/bin/bash
#
maFonc () 
{ 
    for f in "$@";
    do
        echo "$f";
    done
}

shopt -s globstar

maFonc /**

mais, ça ne résout pas le problème, parce qu'on ne peut pas récupérer la liste des fichiers sélectionnés dans Nautilus de cette façon. sad

Dernière modification par Watael (Hier à 07:21)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#38 Hier à 15:39

Frankkunst

Re : script nautilus ne demarre pas selon selection

Bonjour,
Je suis tombé sur cette page blog-microsoft
il parle de 32 767 caractères, ce n'est pas le même environnement mais c'est une piste .
Pour ma part j'ai progressivement augmenté la taille de la variable en ajoutant au renommage 1 caractère supplémentaire au nom de fichier dans un dossier contenant 1505 fichiers.
il en ressort ceci :

frank@frank-ZenBook:~$ wc -m ~/Bureau/ResultatWatael.txt
138460 /home/frank/Bureau/ResultatWatael.txt
frank@frank-ZenBook:

La taille maximale avant que le script ne se lance plus .
On peut donc en déduire que la limite se situe entre 138460 et 139965 caractères
je vais encore essayer d'affiner ce nombre


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#39 Hier à 16:08

Watael

Re : script nautilus ne demarre pas selon selection

en effet, c'est un autre environnement, mais c'est surtout autre chose : ils parlent de la taille d'une variable d'environnement (telle que $HOME, par exemple, sur Linux, qui semble ne pas la définir); ce n'est pas la même chose que la longueur de la ligne de commande.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#40 Hier à 16:35

Frankkunst

Re : script nautilus ne demarre pas selon selection

J'ai trouvé ceci :

frank@frank-ZenBook:~$ getconf -a | grep ARG_MAX
ARG_MAX                            2097152
_POSIX_ARG_MAX                     2097152
frank@frank-ZenBook:~$

et

frank@frank-ZenBook:~$ true | xargs --show-limits
Vos variables d'environnement occupent 2918 octets
Limite supérieure POSIX de longueur d'argument (sur ce système) : 2092186
Plus petite limite haute POSIX de longueur d'argument autorisée (tous systèmes) : 4096
Longueur maximale de la commande qui pourrait être utilisée : 2089268
Taille du tampon de commande actuellement utilisé : 131072
Parallélisation maximum (--max-procs ne peut pas être plus grand): 2147483647

frank@frank-ZenBook:~$

d'après cet article Ici


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#41 Hier à 16:59

Frankkunst

Re : script nautilus ne demarre pas selon selection

Voici la suite :

frank@frank-ZenBook:~$ maxvar.sh
sam. 28 déc. 2024 16:48:28 CET      1B
sam. 28 déc. 2024 16:48:28 CET      2B
sam. 28 déc. 2024 16:48:28 CET      4B
sam. 28 déc. 2024 16:48:28 CET      8B
sam. 28 déc. 2024 16:48:28 CET     16B
sam. 28 déc. 2024 16:48:28 CET     32B
sam. 28 déc. 2024 16:48:28 CET     64B
sam. 28 déc. 2024 16:48:28 CET    128B
sam. 28 déc. 2024 16:48:28 CET    256B
sam. 28 déc. 2024 16:48:28 CET    512B
sam. 28 déc. 2024 16:48:28 CET  1,0KiB
sam. 28 déc. 2024 16:48:28 CET  2,0KiB
sam. 28 déc. 2024 16:48:28 CET  4,0KiB
sam. 28 déc. 2024 16:48:28 CET  8,0KiB
sam. 28 déc. 2024 16:48:28 CET   16KiB
sam. 28 déc. 2024 16:48:28 CET   32KiB
sam. 28 déc. 2024 16:48:28 CET   64KiB
sam. 28 déc. 2024 16:48:28 CET  128KiB
sam. 28 déc. 2024 16:48:29 CET  256KiB
sam. 28 déc. 2024 16:48:29 CET  512KiB
sam. 28 déc. 2024 16:48:29 CET  1,0MiB
sam. 28 déc. 2024 16:48:29 CET  2,0MiB
sam. 28 déc. 2024 16:48:29 CET  4,0MiB
sam. 28 déc. 2024 16:48:29 CET  8,0MiB
sam. 28 déc. 2024 16:48:29 CET   16MiB
sam. 28 déc. 2024 16:48:29 CET   32MiB
sam. 28 déc. 2024 16:48:30 CET   64MiB
sam. 28 déc. 2024 16:48:31 CET  128MiB
sam. 28 déc. 2024 16:48:34 CET  256MiB
sam. 28 déc. 2024 16:48:39 CET  512MiB
sam. 28 déc. 2024 16:48:50 CET  1,0GiB
/home/frank/bin/maxvar.sh: xrealloc : impossible d'allouer 18446744071562068096 octets
frank@frank-ZenBook:~$

et

frank@frank-ZenBook:~$ maxvarfin.sh
sam. 28 déc. 2024 16:52:51 CET      0B
sam. 28 déc. 2024 16:53:10 CET  600MiB
sam. 28 déc. 2024 16:53:33 CET  700MiB
sam. 28 déc. 2024 16:54:00 CET  800MiB
sam. 28 déc. 2024 16:54:28 CET  900MiB
frank@frank-ZenBook:~$

C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#42 Hier à 17:13

Tawal

Re : script nautilus ne demarre pas selon selection

On a aussi ulimit (primitive du shell).
On peut connaître et augmenter la taille de la pile.

$ # On consulte la valeur
$ ulimit -s
8192
$ # Elle est donnée en KiB
$ echo $((8192*1024/4))
2097152
$
$ # On double la valeur
$ ulimit -s 16384
$ ulimit -s
16384
$

À essayer dans le .bashrc

Edit:
Ça devrait fonctionner.
J'ai testé ceci dans un terminal :
(une fois la limite atteinte ou la pile utilisée  [je ne sais pas], il faut changer de shell pour pouvoir changer la taille)

$ cat t
#!/bin/bash

args="$*"
echo ${#args}
$ 
$ bash
$ # On est dans un sous-shell
$
$ ./t /home/tawal/Term/**
bash: ./t: Liste d'arguments trop longue
$
$ ulimit -s 16384
bash: ulimit: stack size : impossible de modifier la limite : Opération non permise
$ exit
exit
$ # On a quitté le sous-shell
$
$ ulimit -s 16384
$ ./t /home/tawal/Term/**
3256862
$

Edit2:
Il faut comprendre qu'augmenter la valeur de la pile réserve d'autant de la RAM.
Une valeur de 16384 correspond à 16Mo de RAM réservée rien que pour la ligne de commande.

Dernière modification par Tawal (Hier à 18:19)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#43 Hier à 18:32

Watael

Re : script nautilus ne demarre pas selon selection

~/.bashrc ne sera pas lu lors de l'exécution d'un script.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#44 Hier à 19:39

Frankkunst

Re : script nautilus ne demarre pas selon selection

J'ai modifié le fichier /etc/security/limits.conf, selon cette page ici, comme suit :

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open file descriptors
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

# End of file
root       soft    msgqueue        unlimited
root       hard    msgqueue        unlimited
frank       soft    msgqueue        unlimited
frank       hard    msgqueue        unlimited

Mais rien n'y fait
j'ai pourtant maintenant :

frank@frank-ZenBook:~$ ulimit -q
unlimited

et

frank@frank-ZenBook:~$ cat /proc/sys/fs/mqueue/msg_max
10000

Toujours le même problème ?!!!

Dernière modification par Frankkunst (Hier à 19:42)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#45 Hier à 21:24

Tawal

Re : script nautilus ne demarre pas selon selection

Un truc me tracasse.
La liste des fichiers sélectionnés n'est pas passée au script en tant qu'arguments.
Mais elle est via une variable (exportée ? sûrement) NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
Or l'affectation d'une variable n'est pas soumise à cette limitation.
Il devrait être possible d'accéder aux éléments de cette liste ainsi :

for f in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS;
do
...

Edit:
Je ne sais pas comment sont gérés les espaces dans les noms de fichier.
Alors, je proposerais plutôt ceci :

readarray -t Args <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
for f in "${Args[@]}"
do
   # Traitement
done

Dernière modification par Tawal (Hier à 21:33)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne