我不确定为什么这个
echo -n "$Line" | awk -v len1=$length -v len2=$longestLength -F\;
'{printf "%-"len1"s" "%-"len2"s\n",$1,";"$2}'
打印出双倍间距的结果。
我问我的老师,他说的只是添加echo -n并将echo和awk放在同一行。我做了两件事,但都没有奏效。
$ length是一个变量,它将字符串的长度保持为分号,$ longestLength是一个保存字符串总大小的变量。 $ Line应该是一个简单的字符串,通常会包含某种值,例如
str: db 'Hello world!', 0Ah ; message string with new-line char
它会打印出格式化的字符串,但也会打印出一个完全空行,例如:
str: db 'Hello world!', 0Ah ; message string with new-line char
(empty line goes here)
其中is只能显示格式化的字符串。
基本上不是
str: db 'Hello world!', 0Ah ; message string with new-line char
; at the end (10 decimal)
str_len: equ $ - str ; calcs length of string (bytes) by
; subtracting this address ($ symbol)
我得到了
str: db 'Hello world!', 0Ah ; message string with new-line char
; at the end (10 decimal)
str_len: equ $ - str ; calcs length of string (bytes) by
; subtracting this address ($ symbol)
谢谢
编辑:
有 echo“$ Line”| od -tx1 -tc
我的输出类似于:
0000040 6c 20 74 6f 20 70 65 72 66 6f 72 6d 20 73 79 73
l t o p e r f o r m s y s
0000060 74 65 6d 20 63 61 6c 6c 0a
t e m c a l l \n
0000071
int 80h ; interrupt kernel to perform system call
基本上我的所有字符串都以\ n
结尾