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...

5つの変数をすべて同じ行に印刷するにはどうすればよいですか?

答え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

関連情報