Я пытаюсь запустить сценарий, указанный по адресу http://talk.maemo.org/showthread.php?t=70866&page=2, на предполагаемом оборудовании - телефоне Nokia Linux с установленной программой BusyBox ash. Сценарий получает имя сети WiFi в качестве параметра и пытается подключить к нему телефон. Я подозреваю, что скрипт работает, но мой SSID, BU (802.1x), содержит пробел и круглые скобки. Поэтому, когда я печатаю в командной строке
autoconnect.sh BU\ \(802.1x\)
Я получаю различные ошибки. Первый,
LIST=`iwconfig wlan0 | awk -F":" '/ESSID/{print $2}'`
if [ $LIST = "\"$1\"" ]; then
... не удается, даже я подключен к сети. Ошибка не предотвращается путем использования одинарных или двойных кавычек вместо экранирования символов в командной строке.
Во-вторых,
if [ -z `iwlist wlan0 scan | grep -m 1 -o \"$1\"` ]; then
echo SSID \"$1\" not found;
показывает, что grep не находит строку, хотя тот же самый grep, введенный непосредственно в командную строку, находит 'BU (802.1x)'.
Как мне указать 1 доллар в двух вышеупомянутых обстоятельствах, чтобы он работал с моим сетевым SSID, содержащим пробелы и скобки?
Спасибо.