printf 输出运行到下一行

printf 输出运行到下一行

我已经在vi.我的输出跑到了它下面的行。我是 UNIX 新手,所以我正在努力学习。我的输出是使用显示的printf

printf "%-15s %15s %15s %2d\n %2s " $name $days $phone $start $time

例如,输出看起来像这样

name       days       phone      start 

time name    days       phone      start

time name    days       phone      start 

etc...

如何让所有五个变量打印在同一行上?

答案1

您的命令:

printf "%-15s %15s %15s %2d\n %2s " $name $days $phone $start $time

你的问题:

'...\n %2s'

您要在 之前插入换行符$time。不要那么做。做:

printf '%-15s %15s %15s %2d %2s\n' \
    "$name" "$days" "$phone" "$start" "$time"

答案2

除了 @mikeserv 的答案之外,您还可以从以下位置查看输出格式控件的完整列表man 1 printf

   \"     double quote    
   \\     backslash    
   \a     alert (BEL)    
   \b     backspace    
   \c     produce no further output    
   \e     escape    
   \f     form feed    
   \n     new line    
   \r     carriage return    
   \t     horizontal tab    
   \v     vertical tab    
   \NNN   byte with octal value NNN (1 to 3 digits)    
   \xHH   byte with hexadecimal value HH (1 to 2 digits)    
   \uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits)    

   \UHHHHHHHH
          Unicode character with hex value HHHHHHHH (8 digits)    

   %%     a single %    
   %b     ARGUMENT as a string with `\' escapes interpreted, except that 
          octal escapes are of the form \0 or \0NNN

您应该阅读man <command name>以了解如何在任何*nix操作系统中使用命令。

相关内容