다음 두 줄을 포함하는 bash 스크립트가 있습니다.
Hour=$(date +"%H")
Hour=$((10#$Hour))
2호선은 무엇을 하나요?
답변1
10#
숫자를 확장하려면 10진수를 사용하도록 지시합니다 .
0으로 시작하는 상수는 8진수로 해석됩니다. 앞에 "0x" 또는 "0X"가 있으면 16진수를 나타냅니다. 그렇지 않은 경우 숫자는 [base#]n 형식을 취합니다. 여기서 선택적 밑은 산술 밑을 나타내는 2~64 사이의 십진수이고 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 명령에서 잠재적인 앞에 오는 0을 처리하기 위해 수행되지만 최신 버전의 GNU date에서는 사용하기가 더 쉽습니다. date +%-H