#26 Le 31/12/2010, à 15:33
- Totor

Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
P.S.: et donc puis-je aussi remplacer ma fonction
nop() { cat - >/dev/null }par
nop() { >/dev/null }... histoire d'éviter un deuxième award !
ça n'a pas d'intérêt car rediriger la sortie standard vers /dev/null n'as pas de sens puisque l'on affiche rien. (je sais, je l'ai mis dans mes exemples plus tôt )
je pense qu'un simple ":" (ou true) dans la fonction suffit. ou alors un read comme je l'ai indiqué auparavant.
pour zenity ... ce serait plutôt avec l'option "notification"
Dernière modification par Totor (Le 31/12/2010, à 15:41)
-- Lucid Lynx --
Hors ligne
#27 Le 31/12/2010, à 16:02
- Zakhar
Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
Oui, je pense qu'un read devrait marcher, je vais tester ça.
Un : ou true, je vais avoir le même problème que précédemment. Comme il n'attend aucun input, il va se terminer, provoquant la sortie prématurée des autres commandes du pipe, comme cela a été pointé du doigt plus haut par kincany.
Et si j'ai bien compris l'histoire du coproc
command_A | command_Best équivalent à
coproc { command_B }
command_A 1>&[$COPROC[0]]... ou pas loin ! ![]()
Dernière modification par Zakhar (Le 31/12/2010, à 16:05)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#28 Le 31/12/2010, à 19:44
- Hizoka

Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
question HS :
echo "${neRienFaire}"
: ${neRienFaire:=Rien}
: ${neRienFaire:=TropTard}
echo "${neRienFaire}"Que signifie exactement les : ?
merci et bonne fin d'annee
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#29 Le 31/12/2010, à 22:13
- Zakhar
Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
C'est pas HS. ![]()
La réponse est dans le post 4.
: est un alias de true
Pratique pour faire :
while : ; do
# instructions
doneSynonyme de
while true ; do
# instructions
done"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#30 Le 01/01/2011, à 00:55
- Zakhar
Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
Bonne année à toutes et tous !
@Totor :
nop()
{
read
}=> Ca ne fonctionne pas du tout !..
Je présume (à vérifier) que les fichiers à copier étant "binaires" ils contiennent quelque part un caractère qui est interprêté par read comme un EOF. Et donc read s'arrête de lire et se termine, ce qui a pour effet de produire un fichier résultat tronqué.
nop()
{
>/dev/null
}=> Ne fonctionne pas non plus. Allez savoir pourquoi... est-ce même une syntaxe correcte ?
Donc pour cette partie je garde :
nop()
{
cat - >/dev/null
}=> Même si c'est un cat moche, au moins ça marche, ça attend bien patiemment que tous les octets soient envoyés avant de terminer !
"Process substitution" :
- J'adopte pour l'option -c du mdsum. C'est plus propre car ça évite d'avoir à gérer un fichier temporaire (création, suppression...) et probablement plus rapide
- par contre je garde les pipes dans mes ordres principaux car le "process substitution" est plus lent (j'ai testé plusieurs fois avec mon script puisqu'il donne le temps total). De plus la documentation indique bien que c'est géré dans /dev/fd (probablement un truc optimisé), mais qu'un système qui ne gèrerait pas /dev/fd pourrait implémenter avec des fichiers temporaires. Et là alors... au niveau temps ce serait la grosse catastrophe car ça ferait une écriture et une lecture physique de fichiers en plus !..
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#31 Le 02/01/2011, à 18:41
- Totor

Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
Bonsoir (et meilleurs voeux à tou[te]s),
Ceci fonctionne très bien chez moi (mais pour un seul fichier) :
$ function nop() { read; }
$ command=nop
$ tee fichier < /usr/bin/passwd|${command}
$ echo ${PIPESTATUS[@]}
0 0lorsqu'il y a plusieurs fichiers :
$ function nop() { while read; do : ; done ; }
$ cat /usr/bin/m*|tee fichier|${command};echo ${PIPESTATUS[@]}
0 0 0Après, si jamais il t'arrive que la fonction nop retourn un status <> 0; alors, il suffit d'y forcer un code retour à 0 : function nop() { while read; do : ; done ; return 0; }
-- Lucid Lynx --
Hors ligne
#32 Le 02/01/2011, à 20:35
- Totor

Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
pour zenity ... ce serait plutôt avec l'option "notification"
l'info se trouve ici
-- Lucid Lynx --
Hors ligne
#33 Le 03/01/2011, à 08:24
- Zakhar
Re : [Résolu] Existe-t-il une commande qui ne fait rien ?
Cool, je vais me pencher de plus près sur ton script pour faire une progression en notifications.
Merci !
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne