Golang 获取 sda 磁盘大小并转换为字符串
可以使用以下代码来获取 sda 磁盘大小并将其输出为字符串:
package main
import (
"fmt"
"os/exec"
"strings"
)
func main() {
cmd := exec.Command("lsblk", " -b", " -d", " -n", " -o", "SIZE", "/dev/sda")
output, err := cmd.Output()
if err != nil {
fmt.Println(err)
return
}
sizeBytes := strings.TrimSpace(string(output))
size := fmt.Sprintf("%.2f GB", float64(parseSize(sizeBytes))/1073741824)
fmt.Println(size)
}
func parseSize(size string) uint64 {
var s uint64
fmt.Sscanf(size, "%d", &s)
return s
}
在这个例子中,我们使用exec.Command函数来执行lsblk命令并获取输出。-b参数表示以字节为单位显示大小,-d参数表示只显示块设备,-n参数表示不显示标题行,-o参数表示只显示大小列,最后一个参数/dev/sda表示只显示sda设备的大小。
我们使用strings.TrimSpace函数来删除输出中的空格和换行符。然后我们将字符串大小转换为字节数,并将其转换为GB大小的字符串输出。最后我们使用fmt.Println函数来打印输出。
原文地址: https://www.cveoy.top/t/topic/nu2Z 著作权归作者所有。请勿转载和采集!