pat="'*.ab' -o -name '*.bc'"
find $path -type f $open -name $pat $close
Это не то, что вам нужно. :кавычки внутри переменной pat
воспринимаются не как кавычки, а как буквальные символы. После расширения $pat
оно разбивается на слова, в результате чего слова '*.ab'
, -o
, -name
и '*.bc'
сохраняются с одинарными кавычками. Поэтому, если у вас нет имен файлов с одинарными кавычками внутри, это не будет совпадать.
path=path
Это устанавливает переменную path
в литеральную строку path
, но я полагаю, что это был просто заполнитель.
open="\("
close="\)"
Они помещают буквальные обратные косые черты в переменные, и find
, вероятно, должен пожаловаться, так как он получает аргумент \(
. Достаточно один раз поставить скобку, поэтому либо open="("
, либоopen=\(
Если вам нужно построить список выражений для find
, используйте оболочку с массивами (Bash или почти что угодно, но только не простуюsh
):
args=()
args+=( -name "*.ab" )
args+=( -or -name "*.bc" )
find... \( "${args[@]}" \)
Оберните построение массива -в цикл, если это необходимо.
Вот важная часть вашего сообщения об ошибке:
Aborting downgrade from (at least) 5.7 to 5.6.
If are sure you want to downgrade to 5.6, remove the file
/var/lib/mysql/debian-*.flag and try installing again.
Удалите файл и повторите попытку. Тогда дайте нам знать.