vi
でBashSSを作成しました。私の出力はその下の行に流れ込んでいます。私は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つの変数すべてを同じ行に出力するにはどうすればよいですか?
あなたの命令:
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"
@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>
OSでコマンドを使用する方法については、*nix
をお読みください。