Вставка в скрипт bash нескольких строк с «find», каждая из которых имеет собственную команду «-exec», сигнализирует об ошибке «-exec»: отсутствует аргумент - PullRequest
0 голосов
/ 12 октября 2019

Я должен искать с помощью команды «найти» разные файлы и каталоги, и для каждого результата поиска должны выполняться разные команды «-exec», поэтому мне нужно использовать в скрипте больше строк с «найти»: каждая строка выполняется отдельно, а неОшибка и фактически выполняется, если вместо этого я вставляю все строки в один скрипт, появляется ошибка «найти: отсутствует аргумент для« -exec ».

Это пример скрипта, который я должен запустить:

#!/Bin/bash
find /var/www/html -type d -o -type f -exec chmod 755 {} \;
find /var/www/html/tolda/vendor -type d -exec chmod 777 {} \;

1 Ответ

0 голосов
/ 12 октября 2019

Я ввел эти две строки в скрипт с именем: 00-permessi.sh Когда я запускаю скрипт с bash 00-permessi.sh на терминале linux, появляется ошибка: «find: отсутствует аргумент для« exec »

Если я удаляю одну из двух строк, оставляя только одну, команда выполняется правильно.

#!/bin/bash
find /var/www/html -type d -o -type f -exec chmod 755 {} \;
find /var/www/html/tolda/vendor -type d -exec chmod 777 {} \;

Например:

#!/bin/bash
find /var/www/html -type d -o -type f -exec chmod 755 {} \;

выполняется правильно

idem выполняется правильно

#!/bin/bash
find /var/www/html/tolda/vendor -type d -exec chmod 777 {} \;

ошибка терминала скриншота

Я наконец понял проблему! Редактирование файла с помощью обычного текстового редактора ипередавая его по FTP в конце каждой строки, разрыв строки был вставлен . Открытие файла с помощью vi и удаление символа вперед и сохранение сценария выполняется без ошибок.

...