Comment printf en bash avec plusieurs arguments?
Comment puis-je imprimer un système au format date + nom d'hôte à l'aide de printf dans bash.
Quelque chose comme printf "%s:%s\n" date hostname
?
OriginalL'auteur Jimson Kannanthara James | 2013-06-05
Vous devez vous connecter pour publier un commentaire.
printf "$(date):$(hostname)\n"
c'était mignon et simple.
Au lieu d'invoquer un shell interne est exécuté avec date, pourquoi ne pas simplement compter sur le format de la date de bash intégré de la mise en œuvre de
printf(1)
? Par exemple:printf '%(%a %b %d %T %Z %Y)T:%s\n' -1 $(hostname)
jmcnama ~> printf '%a %b %d %T %Z %Y)T:%s\n' -1 $(hostname) -0x1.0000000000000p+0 SNEDAP03 0bash: printf: `T': format non valide caractère jmcnama@SNEDAP03 ~> bash --version GNU bash, version 3.2.52(1)-release (sparc-soleil-solaris2.10) Copyright (C) 2007 Free Software Foundation, Inc. C'est pourquoi - c'est une nouvelle fonctionnalité. Bon point pour les modernes bash, si +1
cela peut être problématique. "
printf
interprète les séquences d'échappement et les spécificateurs de format dans la chaîne de format. Si les variables sont inclus, toutes les séquences d'échappement ou les spécificateurs de format dans les données seront interprétées trop, quand vous avez le plus de chances voulu traiter comme des données.". À partir de github.com/koalaman/shellcheck/wiki/SC2059OriginalL'auteur jim mcnamara