bash 스크립트에서 ((num#Hour))는 무엇을 의미합니까?

bash 스크립트에서 ((num#Hour))는 무엇을 의미합니까?

다음 두 줄을 포함하는 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

관련 정보