Gnome Tweaks на Manjaro не запускается

file="JetConst_reco_allconst_4j2t.png"
testseq="gen"

case "$file" in
    *_"$testseq"_*) echo 'True'  ;;
    *)              echo 'False'
esac

Использование case... esac— один из самых простых способов выполнить сопоставление с образцом переносимым способом. В других языках он работает как оператор «switch» (bash, zshи ksh93, а также позволяет вам переходить -через различными несовместимыми способами ). Используемые шаблоны являются стандартными шаблонами подстановки имен файлов.

Проблема связана с тем, что _является допустимым символом в имени переменной. Таким образом, оболочка увидит *_$testseq_*как «*_, за которым следует значение переменной $testseq_и *». Переменная $testseq_не определена, поэтому она будет расширена до пустой строки, и вы получите *_*, что, очевидно, соответствует имеющемуся у вас значению $file. Вы можете ожидать получить True, если имя файла в $fileсодержит хотя бы одно подчеркивание.

Чтобы правильно разграничить имя переменной, используйте "..."вокруг расширения:*_"$testseq"_*.Это будет использовать значение переменной в виде строки. Если вы хотите использовать значение переменной как шаблон , используйте вместо этого *_${testseq}_*.

Еще одним быстрым решением является включение символов подчеркивания в значение$testseq:

testseq="_gen_"

, а затем просто используйте *"$testseq"*в качестве шаблона (для сравнения строк ).

0
15.06.2019, 16:47
1 ответ

ДО:

sudo nano /usr/bin/gnome-tweaks

изменить:

#!/usr/bin/env/python3
от

до:#!/usr/bin/python3

0
28.04.2021, 23:32

Теги

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