所有硬盘驱动器的 hddtemp 别名参数?

hddtemp alias argument for all hard drives?

目前我的 .zshrc 中有一个别名,看起来像这样:

#hddtemp
alias hddtemp="hddtemp /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh 
/dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds 
/dev/sdt /dev/sdu /dev/sdv /dev/sdw /dev/sdx /dev/sdy /dev/sdz /dev/sdaa /dev/sdab /dev/sdac 
/dev/sdad /dev/sdae /dev/sdaf /dev/sdag /dev/sdah /dev/sdai /dev/sdaj | sort -rnk4"

必须有一个更好的论据来让所有的硬盘驱动器都插入我的系统……我只是不确定如何表达它。有人可以帮我吗?我确定 awk 有办法...

我不知道这样做是否更好,但是有 更短 的论点可以做到这一点

alias hddtemps='hddtemp $(ls /dev/sd*)' #notice single quotes

有点在 bash 中工作,在 zsh 中它 returns 只有一台设备,但这可能是由于通配符在 zsh 中的工作方式。我对 zsh 不太了解。

使用lsblk命令列出所有磁盘块设备的路径,xargs将列表转为hddtemp的参数:

alias allhddtemp="lsblk --include 8 --raw --output path --nodeps --nohead |
  xargs hddtemp |
  sort -rnk4"

或者比alias更好的是让它成为一个函数并在里面声明它.zshenv:

allhddtemp ()       
{
    lsblk --include 8 --raw --output path --nodeps --nohead |
       xargs hddtemp | sort -rnk4
}