Ваш вопрос настолько плох, что я не могу не присоединиться к этому конкурсу.
Вот моя интерпретация.
checkDirectories() {
# a logical switch variable for "all directories positive"
allOk=true
# as long as there are some arguments
while [ "$#" -gt 0 ]; do
# if not -d, report and change the all-switch
[ ! -d "$1" ] && echo Fail: "$1" && allOk=false
# get rid of the first function argument,
# so that "$2" becomes the new "$1"
shift
done
# if all ok, report this. otherwise return negative.
$allOk && echo "All directories present." || return 1
}
Функция checkDirectories
принимает каталоги в качестве аргументов (в командной строке, в сценарии и т. д. ). В отличие от ikkachu , он не возвращается к первому отсутствующему каталогу, а проходит по всему списку. Если все каталоги в порядке, будет напечатано:
All directories present.
В противном случае, если какой-либо каталог отсутствует, он сообщит об этом факте (и для каждого другого отсутствует один):
Fail: directory_name/etc
В конце в этом случае будет возвращен отрицательный результат.
Далее следует демонстрация этой функции в каталоге с подкаталогом bin
, но без подкаталога asdf
.
$ checkDirectories bin asdf
Fail: asdf
$ echo $?
1
$ checkDirectories bin
All directories present.
$ echo $?
0
Поскольку имена каталогов не жестко -встроены в функцию, вы можете использовать ее с различными списками каталогов. Сюда входят списки переменной длины. (Таким образом, вы можете проверить четыре или десять каталогов, а также только один.)
Надеюсь, мой ответ поможет вам лучше задавать вопросы в будущем.
Прошло несколько лет с тех пор, как OP задал этот вопрос, но я наткнулся на это и сегодня... И поскольку и я, и он использовали Fedora, когда это произошло, я полагаю, что это вызвано самим SELinux (ничего удивительного... :D ).
В любом случае, если кто-то еще наткнется на это, попробуйте это:
sudo sestatus | grep -i "current"
Если вы видите enforcing
, попробуйте временно отключить SELinux:
sudo setenforce 0
и повторите попытку создания снимка с помощью снаппера ... ;)
ПРИМЕЧАНИЕ.:Я планирую сообщить об этом ребятам из SELinux, чтобы посмотреть, можно ли немного обновить политики SELinux для snapper.