bashスクリプトで((num#Hour))はどういう意味ですか?


回答:


24

10#ベース10を使用して数を拡大することを指示します。

先頭が0の定数は、8進数として解釈されます。先頭の「0x」または「0X」は16進数を示します。それ以外の場合、数値は[base#] nの形式を取ります。オプションの基数は、算術基数を表す2〜64の10進数で、nはその基数の数です。base#を省略すると、base 10が使用されます。nを指定する場合、9より大きい数字は、小文字、大文字、「@」、「_」の順に表されます。baseが36以下の場合、10〜35の数字を表すために小文字と大文字を同じ意味で使用できます。

例:

ベース16:

$ echo $((16#A))
10

ベース8:

$ echo $((8#12))
10

ベース2:

$ echo $((2#1010))
10

steeldriverが指摘しているように、これはdateコマンドの潜在的な先行ゼロを処理するために行われている可能性がありますが、GNU dateの最新バージョンでは以下を使用して簡単に行うことができます。 date +%-H


2
この特定の場合、(少なくともGNUの最近のバージョンではdate)printfスタイルの-形式修飾子を使用してソースで先行ゼロを抑制することができることに言及する価値があるかもしれません+%-H
-steeldriver


@don_crissti-はい、そうです、見つけられませんでした
steeldriver
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.