Для вашего конкретного случая:
#!/bin/bash
LIBDIR="lib dir"
LIBS=("lib1" "lib2")
CMD=(./debug.sh)
for LIB in "${LIBS[@]}"
do
CMD+=(-I "${LIBDIR}/${LIB}")
done
"${CMD[@]}"
exit
Используются два массива:LIBS
для имен библиотек и CMD
для самой команды. Это также будет работать, если есть другие дополнительные пробелы. +=(...)
объединяет новые элементы в конец массива точно так же, как он объединяет новую строку в конец строки. "${CMD[@]}"
расширяется на все значения массива как отдельные слова (, не разбитые на пробелы ). Почему мой сценарий оболочки забивается пробелами или другими специальными символами? содержит больше информации по этому вопросу в целом, и Как мы можем запустить команду, хранящуюся в переменной? в спец.
Похоже, что dhcpcd
это противоречит dhclient
. Отключение dhcpcd
и включение dhclient
, а также настройка NetworkManager
для использования dhclient
, по-видимому, исправили ситуацию -, по крайней мере, временно. Ни в одном из журналов не было указаний на то, что это имело место.
Я сообщу, если проблема повторится. Я надеюсь, что это будет исправлено в будущем выпуске Manjaro.
РЕДАКТИРОВАТЬ:
Проблема не устранена. Однако повторный запуск dhclient
, когда он умирает, исправляет это. Очень надоедливый. Повторный запуск dhclient
происходит почти каждый час.