Ваш цикл while выглядит, как указывает Бармар в своем комментарии к вопросу, как если бы изначально это был цикл for, который повторялся по $coord
(переменная, возможно, содержащая все содержимое файл).
Правильный цикл while может выглядеть примерно так
while read -r L1Aname north south east west; do
Nlat="$north"
Slat="$south"
Elon="$east"
Wlon="$west"
done <"$coord"
Я также удалил $
в $L1Aname
. Я не совсем уверен, что это правильно, поскольку вы могли бы прочитать $L1Aname
(это будет считывать значение в переменную , чье имя хранится в переменной L1Aname
). Я предполагаю, что это было непреднамеренно (просто измените L1Aname
на $L1Aname
ниже, если я ошибаюсь).
Если вам нужно проверить наличие непустых значений, не проверяйте строку "$L1Aname north south east west"
, поскольку она гарантированно будет непустой. Вместо этого проверьте значения отдельных переменных:
while read -r L1Aname north south east west
&& [ -n "$north" ] && [ -n "$south" ]
&& [ -n "$east" ] && [ -n "$west" ]
do
Nlat="$north"
Slat="$south"
Elon="$east"
Wlon="$west"
# use "$Nlat", "$Slat", "$Elon" and "$Wlon" here.
done <"$coord"
Вам не нужно тестировать $L1Aname
, так как он гарантированно содержит что-то, если read
] смог что-то прочитать.
FreeBSD в целом имеет более строгое разделение между «базовой системой» и сторонним программным обеспечением, чем Linux.
FreeBSD будет устанавливать стороннее программное обеспечение в папку /usr/local
. Это означает, что вам, вероятно, следует поискать в /usr/local/etc
файлы конфигурации для nginx
.
Каталог /etc/nginx/sites-available
не является частью стандартного пакета nginx. Ubuntu и другие дистрибутивы Linux включают их, а FreeBSD — нет. На форумах FreeBSD есть обсуждение этого здесь и хорошее руководство по nginx с FreeBSD с большим количеством вопросов и ответов здесь. Похоже, что вы много читаете, но хорошая новость заключается в том, что nginx очень хорошо поддерживается FreeBSD и даже разрабатывался исключительно для FreeBSD в течение 10 лет.