[: =: ожидается унарный оператор [дубликат]

Проблема в том, что вы сопоставляете файл, оканчивающийся на phpmyadmin (без учета регистра), используя шаблон *phpmyadmin. Чтобы получить любой файл, содержащий строку phpmyadmin (без учета регистра), используйте -iname '*phpmyadmin*':

find ./ -iname '*phpmyadmin*' -exec rm -rf {} \;

Возможно, получить соответствующие файлы перед удалением было бы разумно:

find ./ -iname '*phpmyadmin*'

Чтобы ответить на ваш первый вопрос, в rm в пользовательском пространстве нет возможности работать с инодами.

0
26.11.2018, 22:43
1 ответ

В ваших тестах, если подстановка команды $(adb -s...)генерирует строку из нескольких -слов, оболочка интерпретирует это как синтаксическую ошибку. Вы должны будете указать расширения:

[ "$(adb -s...)" = *"Is the system running?"* ]

Результат подстановки команды без кавычек подвергнется разделению и подстановке имени файла так же, как это происходит при расширении переменной без кавычек. Цитирование расширения позволяет избежать этого. В вашем случае именно расщепление вызывает проблемы.

С расширенной подстановкой команд тест может выглядеть примерно так

if [ word1 word2 word3 = *"some string"* ]

Это явно синтаксическая ошибка.

3
28.01.2020, 02:23

Теги

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