Почему zsh 5.7.1 отличается в Linux и MacOS?

Если только для bash, то должно работать:

#!/bin/bash
powers_of_two(){
    sum=0
    for n                          # for every argument from the command line.
    do

    [[ $n =~ ^0*([0-9]+)$ ]] ||    # check that the argument only has base 10 digits.
        continue                   # If not go to next number.

    n=${BASH_REMATCH[1]}           # Remove all of the leading zeros.

    (( n>0 && !(n&(n-1)) )) &&     # Is n positive and a power of 2.
        printf '%d %d\n' "$n" "$((sum+=n))"        # print the number
                                                   # and the sum as integer
                                                   # numbers in base 10.

    done
}


powers_of_two -22 0 1 2 3 4 5 7 8 08 00008 9 31 32 33 -2 asd fhgh 2+2 3e3 inf

При выполнении:

$./script
1 1
2 3
4 7
8 15
8 23
8 31
32 63
-3
02.12.2020, 23:26
1 ответ

Вероятно, потому что он скомпилирован по-другому. По крайней мере, пакет Debian Zsh компилирует его с --enable-etcdir=/etc/zsh, чтобы разделить файлы в один каталог, сохраняя чистоту основного /etc. Заметьте, что это может касаться выбора конкретного дистрибутива -, а не Linux в целом.

Вы можете легко обойти это, включив в свой репозиторий символические ссылки из файлов в /etc/zshна их аналоги в/etc(или наоборот ), или с помощью символических ссылок всего /etc/zshна ..

3
18.03.2021, 22:45

Теги

Похожие вопросы