我已经在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
操作系统中使用命令。