Убедитесь, что 2 массивы имени файлов одинаковы

Во-первых, подтвердите для нашей выгоды, что Oh-My-Zsh (OMZ) установлен и действует, например, обычно, после успешного переключения на OMZ, не только командная строка выглядит иначе. , но если вы echo $ ZSH_THEME , вы должны увидеть в командной строке:

$ echo $ZSH_THEME
robbyrussell
  • robbyrussell - это тема по умолчанию, для тех, кто не менял ее
  • , поэтому даже если вы этого не сделаете у вас должен быть ответ, указывающий, какую тему вы на самом деле используете. Если вы этого не видите, значит, вы на самом деле не в ОМЗ или произошла другая ошибка.

Итак, если это сработает и вы видите тему, отличную от 3den , просмотрите ~ / .zshrc еще раз. Проверьте, есть ли повторяющаяся строка ZSH_THEME = , которая может переопределять настройку ZSH_THEME = .

Нет дубликатов? Это означает, что ничто другое не отменяет вашу настройку.

Тогда остается только указать исходный код вашей конфигурации:

$ . ~/.zshrc
  • . - это ярлык для источника

Теперь вы должны увидеть, что ваша новая тема используется. Если вы проверите, он должен сказать 3den now:

$ echo $ZSH_THEME
3den
0
29.11.2018, 20:22
1 ответ

Предполагая, что ваши массивы названы «массив1» и «массив2», код bash для проверки на равенство:

equal=true
if [[ ${#array1[@]} -ne ${#array2[@]} ]]; then
    equal=false
else
    while IFS= read -r elem1 <&3; IFS= read -r elem2 <&4; do
        if [[ "$elem1" != "$elem2" ]]; then
            equal=false
            break
        fi
    done 3< <(printf "%s\n" "${array1[@]}" | sort) \
         4< <(printf "%s\n" "${array2[@]}" | sort)
fi
if $equal; then
    echo arrays have the same contents
else
    echo arrays have different contents
fi

Это будет (возможно "намного" )медленнее, чем обращение к внешним инструментам.

diff <(grep -E regex file1) <(grep -E regex file2)
0
28.01.2020, 04:07

Теги

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