是否lsblk总是按升序列出磁盘(每个设备字母加一)并排序?
例如:
lsblk | awk '{print $1}'
NAME
fd0
sda
??sda1
??sda2
??vg00-lv_root
??vg00-lv_swap
??vg00-lv_var
sdb
sdc
sdd
sde
sdf
sdg
sdh
sdi
sdj
sdk
Run Code Online (Sandbox Code Playgroud)
我们不想像下面的例子那样得到它
非有序磁盘列表示例(为示例编辑的输出)
lsblk | awk '{print $1}'
NAME
fd0
sda
??sda1
??sda2
??vg00-lv_root
??vg00-lv_swap
??vg00-lv_var
sdb
sdc
sdd
sde
sdi
sdj
sdk
sdf
sdg
sdh
Run Code Online (Sandbox Code Playgroud)
以sdd而不是开头的磁盘示例sdb(再次为示例编辑)
lsblk | awk '{print $1}'
NAME
fd0
sda
??sda1
??sda2
??vg00-lv_root
??vg00-lv_swap
??vg00-lv_var
sdd
sde
sdf
sdg
sdh
sdi
sdj
sdk
sdl
sdm
Run Code Online (Sandbox Code Playgroud)
从lsblk(1)手册页:
默认输出以及 和 等选项的默认输出
--fs可能--topology会发生变化。因此,只要有可能,您应该避免在脚本中使用默认输出。--output columns-list始终在需要稳定输出的环境中使用来显式定义预期列。
如果您需要对输出进行排序,我建议使用-o(输出列)和-x(排序列)选项。用于lsblk --help获取列名称的列表。
例如:
lsblk -o NAME -x NAME
Run Code Online (Sandbox Code Playgroud)