Aşağıdaki 2 satır içeren bir bash komut dosyası var:
Hour=$(date +"%H")
Hour=$((10#$Hour))
2. satır ne yapar?
Aşağıdaki 2 satır içeren bir bash komut dosyası var:
Hour=$(date +"%H")
Hour=$((10#$Hour))
2. satır ne yapar?
Yanıtlar:
10#
Tabanı 10 kullanılarak sayısını artırmak için bunu söyler:
Başında 0 olan sabitler sekizlik sayılar olarak yorumlanır. Baştaki '0x' veya '0X' onaltılık anlamına gelir. Aksi takdirde, sayılar [base #] n biçimini alır; burada isteğe bağlı baz, aritmetik tabanı temsil eden 2 ile 64 arasında bir ondalık sayıdır ve n, bu bazdaki bir sayıdır. Taban # atlanırsa, taban 10 kullanılır. N belirtilirken, 9'dan büyük rakamlar bu sırada küçük harfler, büyük harfler '@' ve '_' ile temsil edilir. Taban 36'dan küçük veya ona eşitse, 10 ile 35 arasındaki sayıları temsil etmek için dönüşümlü olarak küçük ve büyük harfler kullanılabilir.
Örnekler:
Temel 16:
$ echo $((16#A))
10
Temel 8:
$ echo $((8#12))
10
Temel 2:
$ echo $((2#1010))
10
Steeldriver'ın işaret ettiği gibi, muhtemelen tarih komutundan olası önde gelen sıfırları işlemek için yapılıyor, ancak GNU tarihinin son sürümleriyle aşağıdakileri kullanarak daha kolay yapılabilir: date +%-H
date
) önde gelen sıfırların, printf tarzı bir-
format değiştirici kullanılarak kaynakta bastırılabileceğini+%-H