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

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

次の2行を含むbashスクリプトがあります。

Hour=$(date +"%H")
Hour=$((10#$Hour))

2号線は何をしますか?

ベストアンサー1

10#数値を拡張するには、10進数を使用するように指示します。

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

例:

基本16:

$ echo $((16#A))
10

基本8:

$ echo $((8#12))
10

基本2:

$ echo $((2#1010))
10

Steeldriverが指摘したように、これはおそらくdateコマンドで潜在的な先行するゼロを処理するために行われますが、最新バージョンのGNU dateでは使いやすいです。 date +%-H

おすすめ記事