Bash

將 fdisk bash 命令輸出到多行變數

  • June 26, 2019

我似乎無法弄清楚如何將 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

我嘗試將所有內容都放在引號中,不帶引號,但似乎沒有任何效果。

echo你有沒有機會用 來呼叫變數?

如果是這樣,請將其放在雙引號中,如下所示:

echo "$hdds"

或使用printf

printf "%s" "$hdds"

引用自:https://unix.stackexchange.com/questions/524886