我寫了一個腳本來顯示我的帶有 polybar 的筆記本的上下速度。我遇到的問題是將輸出輸入資訊echo。
ATM 我的輸出看起來像這樣(終端中的 bash 腳本回圈)......
WLAN0: ?? 14 MiB/s ?? 16 KiB/s
WLAN0: ?? 60 B/s ?? 0 B/s
WLAN0: ?? 120 B/s ?? 120 B/s
但我希望它排成一行,像這樣......
WLAN0: ?? 14 MiB/s ?? 16 KiB/s
WLAN0: ?? 60 B/s ?? 0 B/s
WLAN0: ?? 120 B/s ?? 120 B/s
我的代碼的本質是以下簡化的行...
echo "yada: ?? $string1 ?? $string2"
變數包括一個數字和文本(最多 10 個字符),具體取決于傳輸速度。
所以兩個emoji之間應該至少有 12 個靜態欄位。但我不知道如何,我希望你能向我解釋如何格式化某種變數寬度,printf我假設。
uj5u.com熱心網友回復:
左對齊printf:
string1="14 MiB/s"; string2="16 KiB/s"
printf "yada: ?? %-12s ?? %-12s\n" "$string1" "$string2"
輸出:
yada: ?? 14 MiB/s ?? 16 KiB/s
uj5u.com熱心網友回復:
這是對齊列的方法:
#!/usr/bin/env bash
dnIcon=$'\342\254\207\357\270\217'
upIcon=$'\342\254\206\357\270\217'
nMiBs=14
sMiBs="$nMiBs MiB/s"
nKiBs=16
sKiBs="$nKiBs KiB/s"
printf 'WLAN0: %s %-10s %s %-10s\n' "$dnIcon" "$sMiBs" "$upIcon" "$sKiBs"
樣本輸出:
WLAN0: ?? 14 MiB/s ?? 16 KiB/s
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407348.html
標籤:
