Moh*_*asi 19 shell scripting bash
我有一个包含以下 2 行的 bash 脚本:
Hour=$(date +"%H")
Hour=$((10#$Hour))
Run Code Online (Sandbox Code Playgroud)
2号线有什么作用?
jes*_*e_b 25
该10#告诉它使用基地10扩大数量:
带有前导 0 的常量被解释为八进制数。前导“0x”或“0X”表示十六进制。否则,数字采用 [base#]n 形式,其中可选基数是 2 到 64 之间的十进制数,表示算术基数,n 是该基数中的数字。如果省略 base#,则使用基数 10。指定 n 时,大于 9 的数字按小写字母、大写字母、“@”和“_”的顺序表示。如果基数小于或等于 36,小写和大写字母可以互换使用来表示 10 到 35 之间的数字。
例子:
基数 16:
$ echo $((16#A))
10
Run Code Online (Sandbox Code Playgroud)
基数 8:
$ echo $((8#12))
10
Run Code Online (Sandbox Code Playgroud)
基数 2:
$ echo $((2#1010))
10
Run Code Online (Sandbox Code Playgroud)
正如 steeldriver 指出的那样,这可能是为了处理 date 命令中任何潜在的前导零,但使用最新版本的 GNU date 可以更轻松地使用: date +%-H