Yanıtlar:
erkek bash
echo [-neE] [arg ...]
Output the args, separated by spaces, followed by a newline.
The return status is 0 unless a write error occurs. If -n is
specified, the trailing newline is suppressed. If the -e option
is given, interpretation of the following backslash-escaped
characters is enabled.
[...]
Arithmetic Expansion
Arithmetic expansion allows the evaluation of an arithmetic expression
and the substitution of the result. The format for arithmetic expan‐
sion is:
$((expression))
[...]
Constants with a leading 0 are interpreted as octal numbers. A leading
0x or 0X denotes hexadecimal. Otherwise, numbers take the form
[base#]n, where the optional base is a decimal number between 2 and 64
representing the arithmetic base, and n is a number in that base. If
base# is omitted, then base 10 is used. When specifying n, the digits
greater than 9 are represented by the lowercase letters, the uppercase
letters, @, and _, in that order. If base is less than or equal to 36,
lowercase and uppercase letters may be used interchangeably to repre‐
sent numbers between 10 and 35.
man bash | wc[GNU bash, sürüm 3.2.57] man sayfasının 4890 satır, 37094 kelime , 329778 karakter olduğunu gösterir. Bu cevap sadece ilgili 7 satır, 176 kelime , 1115 karakterden oluşur. Bence bu cevap senin lehine hak ediyor. (bu yorumu yaptığı gibi ;-)
Dokümandan: https://tiswww.case.edu/php/chet/bash/bashref.html#Shell-Arithmetic
Önde 0 olan sabitler sekizli sayılar olarak yorumlanır. Baştaki '0x' veya '0X' onaltılıyı gösterir. Aksi takdirde, sayılar [base #] n şeklini alır, burada isteğe bağlı taban, aritmetik tabanı temsil eden 2 ila 64 arasında bir ondalık sayıdır ve n, bu tabandaki bir sayıdır. Taban no atlanırsa, taban 10 kullanılır. N belirtilirken, 9'dan büyük rakamlar, küçük harflerle, büyük harflerle, '@' ve '_' ile bu sırada temsil edilir. Eğer baz 36'dan küçük veya ona eşitse, 10 ila 35 arasındaki sayıları temsil etmek için küçük ve büyük harfler birbirlerinin yerine kullanılabilir.
Böylece echo $((16#FF))çıktılar 255ve echo $((2#0110))çıktılar6
Ipor'un cevabı mükemmel ama çok az eksik. Bash man sayfasının alıntı kısmı sözdiziminin sadece sabitler için çalıştığını ve sabit olmadığını belirtir . Bunun gerçekten nasıl çalıştığını sormalısın![base#]n2#$1
GENİŞLEME
Genişletme, komut satırında sözcüklere ayrıldıktan sonra gerçekleştirilir. Yapılan yedi çeşit genişleme vardır: küme genişletme, tilde genişletme, parametre ve değişken genişletme, komut değiştirme, aritmetik genişletme, sözcük bölme ve yol adı genişletme.
Açılımların sırası şudur: ayraç büyümesi; tilde genişleme, parametre ve değişken genişleme, aritmetik genişleme ve komut değiştirme (soldan sağa doğru yapılır); kelime bölme; ve yol adı genişletme.
Temel olarak Bash önce değişken ikamesi yapıyor, böylece $1ilk değeri ile değiştiriliyor. Ancak o zaman sadece uygun bir sabit gören aritmetik genişleme yapar.
$1girdi olduğunu biliyorum" diyor .
$1aritmetik ifade değerlendirilmeden önce bir tamsayı sabit üretilmesi için genleştirilir bakınız. Gnu.org/software/bash/manual/bash.txt , bölüm 3.5"