Я получил две идеи, которые могли бы решить Вашу проблему:
crontab -e
) это копирует файлы, в которых Вы нуждаетесь к папке, которую может считать веб-сервер.Если Вы хотите, чтобы я вошел в большее количество детали, не стесняйтесь спрашивать :)
Это означает, что модуль ядра bridge
не загружен. На большинстве машин загрузка модуля выглядит следующим образом:
sudo modprobe bridge
-121--92271- Я собираюсь опубликовать то, что я придумал, и если у кого-либо есть какие-либо комментарии или предложения, пожалуйста, дайте мне знать.
i=$(who | grep -c "username")
if [ $i -eq "1" ]
then
/bin/rm -rf /tmp/tmpdir/
fi
-121--111741- Предложение if будет выполнять все, что находится между , затем
и fi
, если выражение после , если
имеет значение true, что в оболочечном выражении означает, что его значение выхода равно нулю. Для команды test
можно использовать команду или скобки, которые являются просто короткой формой. Конструкция a & & b
означает: «вычислить a и если она истинна также вычислить b». Таким образом, ваши два примера эквивалентны, но предложение if более читаемо и может использоваться для группировки нескольких команд.
Хорошо, я полагаю, вы понимаете, что [ условие ]
(или [[ условие ]]
в бэше)
это, по сути, команда, у которой нет побочных эффектов,
но это оценивает состояние и дает соответствующий статус выхода.
Вы упомянули связывание &&
s вместе.
Вы можете сделать это;
A && B && C
эквивалентно
if A
then
if B
then
C
fi
fi
Но вы, кажется, спрашиваете, как это сделать
if A
then
B
C
fi
Вы можете сделать это с помощью
A && (B; C)
или
A && { B; C;}
Примечания:
B
и C
выполняются в дочернем процессе.
Поэтому,
команды типа присваивания переменных или cd
не будут иметь никакого влияния на родительскую оболочку.
Команды в фигурных скобках выполняются в том же процессе, что и команда A
. {
и ;
(или и
) до }
. Я настоятельно рекомендую использовать if
-then
--
else
синтаксис для улучшения читабельности.