将 fdisk bash 命令输出到多行变量

将 fdisk bash 命令输出到多行变量

我似乎无法弄清楚如何将 bash 脚本中的 fdisk 命令放入多行变量中。

这是我的代码

hdds="$(sudo fdisk -l | grep "Disk /dev/sd" | awk '{print$2}' | sed 's/://g')"

当我执行这个 bash 脚本时,它将所有内容放在一行上,例如

/dev/sda /dev/sdb

当我在 bash 脚本之外执行此命令时,它的工作方式如下

sudo fdisk -l | grep "Disk /dev/sd" | awk '{print$2}' | sed 's/://g' | wc -l

输出在哪里2

我尝试过将所有内容都放在引号中,不带引号以及不带引号的内容,但似乎没有任何效果。

答案1

echo您是否有机会使用 , 来调用变量?

如果是这样,请将其放在双引号中,如下所示:

echo "$hdds"

或使用printf

printf "%s" "$hdds"

相关内容