
私はすでにいます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