systemd - определить службу без ExecStop и иметь возможность остановить ее без сбоев

У вас три проблемы.

Одна проблема в том, что вам нужны пробелы вокруг [ ... ] builtin.

[ -f $file ]

Другая проблема в том, что вывод ls -R довольно бесполезен. ls -R отображает имена файлов без части каталога, поэтому, если вы не сделаете относительно тяжелый разбор вывода, вы не сможете его использовать. Правильным инструментом для рекурсивного обхода каталогов является find, который имеет другой синтаксис.

Третья проблема заключается в том, что вам не хватает двойных кавычек вокруг подстановок переменных. Это не полностью ломает скрипт, только если вы сталкиваетесь с именами файлов, содержащими пробелы или \[*?. С такими именами файлов можно справиться без проблем, если не забывать всегда использовать двойные кавычки вокруг замен переменных и команд: "$file", "$(mycommand)". Дополнительную информацию см. в Почему мой сценарий оболочки подавляется пробелами или другими специальными символами?

find . -exec sh -c '
    if [ "$0" ] …
' {} \;

Обратите внимание, что вы можете использовать find -...

find . -exec sh -c '
    if [ "$0" ] …
' {} \;

.type f для выполнения команды (или вывода на печать) только для обычных файлов, или (в Linux) find -xtype f для включения символических ссылок на обычные файлы.

0
02.03.2018, 14:49
1 ответ

Tener HDP 2.6.4 con Kafka 0.10.1 instalado, informó el script

/usr/hdp/2.6.4.0-91/kafka/bin$./connect-standalone.sh
USAGE:./connect-standalone.sh [-daemon] connect-standalone.properties

una propiedad para ejecutar como daemon usando la opción -daemon.

¿Sería esto algo factible para ti?

0
28.01.2020, 04:30

Теги

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