Pourquoi la ligne de commande
« shred --remove --verbose --zero !(*.gpg) »
fait bien ce qu'elle doit,
mais que ça coince quand elle se trouve dans
un script bash ? y a-t-il une parade ?
Le message d'erreur : «
erreur de syntaxe près du symbole inattendu « ( »
/home/didier/bin/gpgc: ligne 9: ` shred --remove --verbose --zero
!(*.gpg)'
»
Librement,
Didier.
--
ma céramique : http://didierdescamps.fr
autres bouts de vie : http://didierdescamps.free.fr
--
Bonjour, Le 08/06/2021 21:47, Benoit Izac a écrit :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux -- Olivier Miakinen
Olivier Miakinen
Le 08/06/2021 22:12, Didier a écrit :
Le 08/06/2021 Í 21:22, Olivier Miakinen a écrit :
ou=$(pwd)
Right!
if [ "${ou:12:3}" = '/.z' ] ; then
[...]
Mais je veux que ça fonctionne aussi dans les sous-répertoires du consacré secret ~/.z , or pwd retourne /.z et non /.z/ et je ne peux donc pas tester un 16eme caractère.À moins de tester aussi la longueur ? ça risque de se compliquer alors.
Ah, ok. Tu peux tester "${ou:12:4}" qui sera égal soit Í '/.z' soit Í '/.z/' selon que la chaÍ®ne s'arrête lÍ ou continue. Ou bien tu peux ajouter le / toi-même au $(pwd) avant de tester : ou=$(pwd)/ if [ "${ou:12:4}" = '/.z/' ] ; then -- Olivier Miakinen
Le 08/06/2021 22:12, Didier a écrit :
Le 08/06/2021 Í 21:22, Olivier Miakinen a écrit :
ou=$(pwd)
Right!
if [ "${ou:12:3}" = '/.z' ] ; then
[...]
Mais je veux que ça fonctionne aussi dans les sous-répertoires du
consacré secret
~/.z , or pwd retourne /.z et non /.z/ et je ne peux donc pas tester un
16eme caractère.À moins de tester aussi la longueur ? ça risque de se
compliquer alors.
Ah, ok.
Tu peux tester "${ou:12:4}" qui sera égal soit Í '/.z' soit Í '/.z/' selon
que la chaÍ®ne s'arrête lÍ ou continue.
Ou bien tu peux ajouter le / toi-même au $(pwd) avant de tester :
Le 08/06/2021 Í 21:22, Olivier Miakinen a écrit :
ou=$(pwd)
Right!
if [ "${ou:12:3}" = '/.z' ] ; then
[...]
Mais je veux que ça fonctionne aussi dans les sous-répertoires du consacré secret ~/.z , or pwd retourne /.z et non /.z/ et je ne peux donc pas tester un 16eme caractère.À moins de tester aussi la longueur ? ça risque de se compliquer alors.
Ah, ok. Tu peux tester "${ou:12:4}" qui sera égal soit Í '/.z' soit Í '/.z/' selon que la chaÍ®ne s'arrête lÍ ou continue. Ou bien tu peux ajouter le / toi-même au $(pwd) avant de tester : ou=$(pwd)/ if [ "${ou:12:4}" = '/.z/' ] ; then -- Olivier Miakinen
Benoit Izac
Bonjour, Le 08/06/2021 Í 22:57, pehache a écrit dans le message  :
ou=`pwd`
La syntaxe avec `...` est désuète et souvent peu lisible (sauf bien sÍ»r dans un cas aussi simple que `pwd`). Lui préférer la syntaxe $(...), plus lisible, et qui peut s'imbriquer.
^^^^^^^^^^^^^^^^^^^^^^^ «Â `…`Â » s'imbrique aussi, c'est juste qu'il faut les échapper.
Et ça peut rapidement devenir totalement illisible, y compris pour celui qui essaie de l'écrire.
Je n'ai pas dit le contraire, je soulignais juste que l'imbrication n'est pas spécifique Í «Â $(…)Â ».
«Â $(…) » a aussi ses petits problèmes : % echo `(uname -s)` Linux % echo $((uname -s)) 0
Tu te fais éventuellement avoir une ou deux fois avec ça, et après tu retiens. L'illisibilité des backquote imbriquées par contre elle reste.
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre problème dans ton code. Que ce soit bien clair, je ne défends pas les «Â `…` », je réagis juste au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux. -- Benoit Izac
Bonjour,
Le 08/06/2021 Í 22:57, pehache a écrit dans le message
<iia3tqFs75oU1@mid.individual.net>Â :
ou=`pwd`
La syntaxe avec `...` est désuète et souvent peu lisible (sauf bien
sÍ»r dans un cas aussi simple que `pwd`). Lui préférer la syntaxe
$(...), plus lisible, et qui peut s'imbriquer.
^^^^^^^^^^^^^^^^^^^^^^^
«Â `…`Â » s'imbrique aussi, c'est juste qu'il faut les échapper.
Et ça peut rapidement devenir totalement illisible, y compris pour
celui qui essaie de l'écrire.
Je n'ai pas dit le contraire, je soulignais juste que l'imbrication
n'est pas spécifique Í «Â $(…)Â ».
«Â $(…) » a aussi ses petits problèmes :
% echo `(uname -s)`
Linux
% echo $((uname -s))
0
Tu te fais éventuellement avoir une ou deux fois avec ça, et après tu
retiens. L'illisibilité des backquote imbriquées par contre elle
reste.
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre
problème dans ton code.
Que ce soit bien clair, je ne défends pas les «Â `…`Â », je réagis juste
au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux.
Bonjour, Le 08/06/2021 Í 22:57, pehache a écrit dans le message  :
ou=`pwd`
La syntaxe avec `...` est désuète et souvent peu lisible (sauf bien sÍ»r dans un cas aussi simple que `pwd`). Lui préférer la syntaxe $(...), plus lisible, et qui peut s'imbriquer.
^^^^^^^^^^^^^^^^^^^^^^^ «Â `…`Â » s'imbrique aussi, c'est juste qu'il faut les échapper.
Et ça peut rapidement devenir totalement illisible, y compris pour celui qui essaie de l'écrire.
Je n'ai pas dit le contraire, je soulignais juste que l'imbrication n'est pas spécifique Í «Â $(…)Â ».
«Â $(…) » a aussi ses petits problèmes : % echo `(uname -s)` Linux % echo $((uname -s)) 0
Tu te fais éventuellement avoir une ou deux fois avec ça, et après tu retiens. L'illisibilité des backquote imbriquées par contre elle reste.
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre problème dans ton code. Que ce soit bien clair, je ne défends pas les «Â `…` », je réagis juste au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux. -- Benoit Izac
Benoit Izac
Bonjour, Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit dans le message <s9os69$1klo$Â :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème. -- Benoit Izac
Bonjour,
Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit dans le message
<s9os69$1klo$1@cabale.usenet-fr.net>Â :
% echo `(uname -s)`
Linux
% echo $((uname -s))
0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça
fait de différent de :
% uname -s
Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas
chercher Í y voir un sens autre que celui de mettre en évidence le
problème.
Bonjour, Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit dans le message <s9os69$1klo$Â :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème. -- Benoit Izac
pehache
Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit :
Bonjour, Le 08/06/2021 21:47, Benoit Izac a écrit :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
(...) exécute les commandes dans un subshell --------------------- $ x=1; (x=2); echo $x 1 --------------------- -- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le même sens que les tiennes.", ST sur fr.bio.medecine
Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit :
Bonjour,
Le 08/06/2021 21:47, Benoit Izac a écrit :
% echo `(uname -s)`
Linux
% echo $((uname -s))
0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça
fait de différent de :
Le 09/06/2021 Í 00:49, Olivier Miakinen a écrit :
Bonjour, Le 08/06/2021 21:47, Benoit Izac a écrit :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
(...) exécute les commandes dans un subshell --------------------- $ x=1; (x=2); echo $x 1 --------------------- -- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le même sens que les tiennes.", ST sur fr.bio.medecine
Marc SCHAEFER
Benoit Izac wrote:
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du tout d'o͹ cette syntaxe peut venir. Toujours `uname -s` et plus récemment toujours $(uname -s). Attention $((4*32+17)) sert Í faire des calculs. Donc $((texte)) s'évalue Í zéro.
Benoit Izac <use.reply.to@invalid.address> wrote:
% echo `(uname -s)`
Linux
% echo $((uname -s))
0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça
fait de différent de :
% uname -s
Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas
chercher Í y voir un sens autre que celui de mettre en évidence le
problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du
tout d'o͹ cette syntaxe peut venir.
Toujours `uname -s` et plus récemment toujours $(uname -s).
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du tout d'o͹ cette syntaxe peut venir. Toujours `uname -s` et plus récemment toujours $(uname -s). Attention $((4*32+17)) sert Í faire des calculs. Donc $((texte)) s'évalue Í zéro.
Marc SCHAEFER
pehache wrote:
(...) exécute les commandes dans un subshell
Ce qui ne sert en général Í rien. Si on veut absolument le faire avec $(), alors: $( (uname -s) ) ou ($(uname -s)) Jamais $((uname -s)) qui s'évalue 0.
Ce qui ne sert en général Í rien. Si on veut absolument le faire avec $(), alors: $( (uname -s) ) ou ($(uname -s)) Jamais $((uname -s)) qui s'évalue 0.
Didier
Le 09/06/2021 Í 00:59, Olivier Miakinen a écrit :
ou=$(pwd)/ if [ "${ou:12:4}" = '/.z/' ] ; then
simple et efficace, merci !
Le 09/06/2021 Í 00:59, Olivier Miakinen a écrit :
Le 09/06/2021 Í 00:59, Olivier Miakinen a écrit :
ou=$(pwd)/ if [ "${ou:12:4}" = '/.z/' ] ; then
simple et efficace, merci !
Benoit Izac
Bonjour, Le 09/06/2021 Í 07:58, Marc SCHAEFER a écrit dans le message <s9plap$787$Â :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du tout d'o͹ cette syntaxe peut venir. Toujours `uname -s` et plus récemment toujours $(uname -s).
C'est pour lancer la commande dans un sous-shell. Je t'accorde que pour uname ça n'a pas d'intérêt mais il y a des situations o͹ ça l'est.
Attention $((4*32+17)) sert Í faire des calculs.
D'o͹ le problème avec «Â $(…) » qui se contourne aisément : % echo $((uname -s) ) Linux % echo $( (uname -s)) Linux
Donc $((texte)) s'évalue Í zéro.
Tout Í fait. -- Benoit Izac
Bonjour,
Le 09/06/2021 Í 07:58, Marc SCHAEFER a écrit dans le message
<s9plap$787$1@shakotay.alphanet.ch>Â :
% echo `(uname -s)`
Linux
% echo $((uname -s))
0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça
fait de différent de :
% uname -s
Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas
chercher Í y voir un sens autre que celui de mettre en évidence le
problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du
tout d'o͹ cette syntaxe peut venir.
Toujours `uname -s` et plus récemment toujours $(uname -s).
C'est pour lancer la commande dans un sous-shell. Je t'accorde que pour
uname ça n'a pas d'intérêt mais il y a des situations o͹ ça l'est.
Attention $((4*32+17)) sert Í faire des calculs.
D'o͹ le problème avec «Â $(…) » qui se contourne aisément :
% echo $((uname -s) )
Linux
% echo $( (uname -s))
Linux
Bonjour, Le 09/06/2021 Í 07:58, Marc SCHAEFER a écrit dans le message <s9plap$787$Â :
% echo `(uname -s)` Linux % echo $((uname -s)) 0
Je ne comprends pas ce qu'est censée faire cette syntaxe, ni ce que ça fait de différent de : % uname -s Linux
C'est juste un exemple pour démontrer un problème, il ne faut pas chercher Í y voir un sens autre que celui de mettre en évidence le problème.
Je n'ai jamais utilisé `(uname -s)` ni $((uname -s)). Je ne vois pas du tout d'o͹ cette syntaxe peut venir. Toujours `uname -s` et plus récemment toujours $(uname -s).
C'est pour lancer la commande dans un sous-shell. Je t'accorde que pour uname ça n'a pas d'intérêt mais il y a des situations o͹ ça l'est.
Attention $((4*32+17)) sert Í faire des calculs.
D'o͹ le problème avec «Â $(…) » qui se contourne aisément : % echo $((uname -s) ) Linux % echo $( (uname -s)) Linux
Donc $((texte)) s'évalue Í zéro.
Tout Í fait. -- Benoit Izac
Olivier Miakinen
Le 09/06/2021 06:34, Benoit Izac a écrit :
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre problème dans ton code. Que ce soit bien clair, je ne défends pas les «Â `…` », je réagis juste au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux.
Ok, je comprends ton point de vue. Il n'empêche qu'une syntaxe comme "$(basename $(pwd))" reste plus lisible que n'importe quel équivalent Í base de backquotes. Et je ne pense pas que l'on puisse dire qu'il y ait « un problème dans ce code ». -- Olivier Miakinen
Le 09/06/2021 06:34, Benoit Izac a écrit :
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre
problème dans ton code.
Que ce soit bien clair, je ne défends pas les «Â `…`Â », je réagis juste
au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux.
Ok, je comprends ton point de vue.
Il n'empêche qu'une syntaxe comme "$(basename $(pwd))" reste plus lisible
que n'importe quel équivalent Í base de backquotes. Et je ne pense pas
que l'on puisse dire qu'il y ait « un problème dans ce code ».
Si tu en es Í imbriquer plusieurs niveaux, je pense qu'il y a un autre problème dans ton code. Que ce soit bien clair, je ne défends pas les «Â `…` », je réagis juste au fait que l'on pense qu'ils ne s'imbriquent pas ; ce qui est faux.
Ok, je comprends ton point de vue. Il n'empêche qu'une syntaxe comme "$(basename $(pwd))" reste plus lisible que n'importe quel équivalent Í base de backquotes. Et je ne pense pas que l'on puisse dire qu'il y ait « un problème dans ce code ». -- Olivier Miakinen