Bash%s格式说明符在打印输出时消除字符串中的空格

Bash%s格式说明符在打印输出时消除字符串中的空格,bash,printf,string-formatting,Bash,Printf,String Formatting,我开始使用printf而不是echo。我第一次进入printf%s是: #!/bin/bash danny=$(tail -1 /come/and/play/with/US.log| ~/walt/convert_gm_est) printf "%s" $danny 08:02.020Z信息当外壳计算时: printf "%s" $danny shell将展开变量danny的值,然后将其拆分为单词。用这些话来说,它还将扩大全球范围。完成后,表达式将如下所示(添加引号以澄清): 引用你的变量!

我开始使用
printf
而不是
echo
。我第一次进入
printf%s
是:

#!/bin/bash
danny=$(tail -1 /come/and/play/with/US.log| ~/walt/convert_gm_est)
printf "%s" $danny

08:02.020Z信息当外壳计算时:

printf "%s" $danny
shell将展开变量
danny
的值,然后将其拆分为单词。用这些话来说,它还将扩大全球范围。完成后,表达式将如下所示(添加引号以澄清):


引用你的变量!将
printf“%s”foo bar baz
printf“%s”foo bar baz
进行比较。(提示:用于尽早捕获此类错误。)为什么要
danny
?这很可爱,但是可爱的变量名很快就会变老。正确命名标识符实际上是编程的一个重要部分。当你可以完全透明地说“sum=reported\u hours*Hourry\u rate”
时,用sharon=richard*betty编码是不必要的难读的(如果用ted来打折,用marianne来表示货币,大多数人都会放弃试图理解)。
#!/bin/bash
danny=$(tail -1 /come/and/play/with/US.log| ~/walt/convert_gm_est)
printf "%s " $danny
08:02.020Z INFO <- casper/casperbox001wow SYSSTATS[sz=21, tag=0, aux=0] process_log 2221397 80 0 casper@casperbox001wow:~$
printf "%s" $danny
printf '%s' '08:02.020Z' 'INFO' '<-' 'casper/casperbox001' 'wow0' 'SYSSTATS'...
printf "%s" "$danny"