Предполагая, что формат этого файла составляет name=value
строк, вы можете сделать это в простой оболочке(bash
илиzsh
):
while read -r line; do
case "$line" in
SERVER_NAME=*|SERVER_PORT=*) declare "$line";;
esac
done < env.ref
echo "$SERVER_NAME"
echo "$SERVER_PORT"
Это читает файл, и когда указанные строки найдены, используйте встроенную declare
для создания переменных в этой текущей оболочке (, хотя при вызове внутри функции обратите внимание, что она будет ограничьте область действия этой переменной этой функцией (, если только вы не используетеdeclare -g
)).
Похоже, что либо ваше ядро, либо драйвер для беспроводного интерфейса будут поддерживать только новый интерфейс конфигурации cfg80211
, используемый инструментом iw
, а не старый интерфейс wireless-extensions
, используемый iwconfig
.
Включена ли в конфигурации вашего ядра опция CONFIG_WIRELESS_EXT
и/или опция CONFIG_CFG80211_WEXT
? Последний вариант включит уровень совместимости, который позволит старым программам пользовательского пространства, таким как iwconfig
, получить доступ к конфигурации более новых драйверов стиля -.
Обратите внимание, что при использовании ip link set wlan0 up
или ifconfig wlan0 up
вы будете устанавливать административное состояние интерфейса или, по сути, состояние, в котором интерфейс хочет, чтобы находился интерфейс., /sys/class/net/wlan0/operstate
сообщает вам о рабочем состоянии интерфейса, т. е. какое состояние интерфейсу действительно удалось достичь.
Для проводного интерфейса рабочее состояние изменяется на up
, в основном отражающее состояние индикатора соединения интерфейса :, когда интерфейс обнаруживает импульсы соединения с другого конца (и успешно согласовывает скорость соединения. и другие параметры, если применимо ), загорится светодиод связи, и рабочее состояние изменится на up
.
Беспроводной интерфейс не имеет кабеля для подключения, поэтому эквивалентной задачей является подключение к беспроводной сети (и выполнение любой необходимой аутентификации, если применимо ). Таким образом, вы должны сначала настроить беспроводной интерфейс с сетью с ESSID и любыми необходимыми сетевыми паролями или ключами аутентификации. Если беспроводной интерфейс находится вне зоны действия беспроводной точки доступа или параметры аутентификации неверны, беспроводной интерфейс не сможет фактически передавать пакеты -, и это означает рабочее состояние «вниз».