У меня есть ответ. Когда я запускал в режиме демона, используя sudo wpa_cli -a /home/pi/test.sh -B
, я проверял неправильный выходной файл (в домашнем каталоге ). В эхе я не указал правильный путь для вывода файла, поэтому он будет перенаправлен на файл output
в корневом каталоге /
.
Спасибо за все
Вы получаете сообщение find: ‘Templates’: No such file or directory
, потому что нет подкаталога Templates
cd
в вашем скрипте Мне интересно, это все опечатка и вы имели в виду ~/Templates
. В любом случае, вы не должны использовать ~
в сценарии, а вместо этого используйте "$HOME"
, поэтому результирующий путь будет "$HOME/Templates"
.
«нет, потому что Templates — это каталог, который я ищу в «~» или домашнем каталоге пользователя»
find ~ -maxdepth 0 -type d -empty -name Templates
Почему вы считаете, что у samba такие же переменные окружения, как и у linux?
Используйте реальный/полный путь к каталогу, который вы хотите найти, так как ~
не является каталогом,он, вероятно, пуст -, поэтому find рассматривает Templates
как путь, а не шаблон поиска(find: ‘Templates’: No such file or directory
).
Можете ли вы запустить оболочку в каталоге samba и посмотреть, что там с $ pwd
? Вы также можете проверить всю среду с помощью $ set
;
В главе об использовании переменных книги Samba говорится, что домашний каталог — %H
, а не ~
.
небольшой эксперимент:
$ ls -l | grep -E '^d' # to show there is 1 directory (tmp), which is not empty but doesnt have `Templates`
drwxr-xr-x 2 user group 24576 Mar 16 16:16 tmp
$ find Templates -maxdepth 0 -type d -empty # as if <path> (`~`) was empty
find: Templates: No such file or directory
$ find tmp Templates -maxdepth 0 -type d -empty # as if `~` was `tmp`
find: Templates: No such file or directory
Либо ~
пусто, (сначала find...
с "пустым" путем. )или у вас нет Templates
в искомом пути (второйfind
).
$ touch Templates
$ find tmp Templates -maxdepth 0 -type d -empty # as if `~` was `tmp`
$ rm Templates; mkdir Templates
$ find tmp Templates -maxdepth 0 -type d -empty # as if `~` was `tmp`
Templates
Если
Templates is directory I am searching for in a '~' or user's home directory
, затем
$ find ~ -maxdepth 1 -type d -empty -name Templates
~/Templates
Должно решить проблему.
-maxdepth 0
применяет тесты и действия только к аргументам командной строки (в соответствии с man find ; проверьте также этот ответ)