Bash
如何從“日期”的輸出中刪除前導零或避免對此類十進制數進行八進制解釋?
我有這個:
date +"%H hours and %M minutes"
我用節日來表達..但它說的是:“零九小時”..我希望它說“九小時”!
但是日期總是給我 09 ……所以我想知道 bash 是否可以輕鬆地將它變成 9?
在我嘗試過的複雜腳本中
printf %d 09
但它失敗了..不是八進制的:(
任何的想法?
-
在您的情況下,您可以簡單地通過在%
日期格式字元串中追加來禁用零填充:%-H
預設情況下,日期用零填充數字欄位。以下可選標誌可能跟在 ‘%’ 後面:
+
-
(連字元)不要填充欄位 +_
(下劃線)用空格填充 +0
(零)用零填充 +^
盡可能使用大寫 +#
如果可能,使用相反的情況見日期手冊
- 如果你想解釋不同基數的數字,在 bash
+ 以 0 開頭的常量被解釋為八進制數。 + 前導 0x 或 0X 表示十六進制。 + 否則,數字採用形式$$ base# $$n,其中 base 是 2 到 64 之間的十進制數,表示算術基數,n 是該基數中的數字
因此,要將數字解釋為十進制,請使用
10#n
形式,例如。10#09
echo $((10#09*2)) 18
請參閱bash 手冊的算術評估部分。