Предполагается, что входной файл представляет собой одно число в строке, и вы хотите добавить .0
к каждому однозначному целому числу:
sed 's/^[0-9]$/&.0/' /path/to/inputfile
Чтобы заменить содержимое файла, а не отображать изменения:
sed --in-place 's/^[0-9]$/&.0/' /path/to/inputfile
1 )Подключение к беспроводной сети
Вы хотите добавить свой пароль. Хотя BSSIDpasskey
для моей сети WiFi был в моей связке ключей, я мог переключиться на него и успешно войти в систему, только добавив ключ доступа непосредственно в командную строку в виде открытого текста. Ничто другое не работало.
networksetup -setairportnetwork [en0] [network_BBSSID] [passkey]
2 )Приостановка сценария до подключения
Вы можете просто проверить код ошибки команды выше (echo $?
). Будьте осторожны, так как коды ошибок networksetup не тривиальны, может помочь поиск «сбой»:networksetup -setairportnetwork en0 mywifi mypass | grep -ic "failed"
если результат 0 все должно быть хорошо. Вы также можете напрямую протестировать фактическое подключение, а не просто подключаться к Wi-Fi (лучший вариант imho ), например, вы можете проверить, что вы можетеping
хост в вашей сети или в Интернете. Вы должны поместить все это в цикл while :
, который будет повторять команду до тех пор, пока результат не станет 0. Или вы можете добавить в свою команду оператор read
, который приостановит выполнение сценария (мое понимание вашего вопроса ).
Наконец, вы можете добавить тайм-аут , чтобы убить networksetup в случае, если сеть не подключается через некоторое время :команда тайм-аута,часть gnu coreutils может пригодиться. Его можно установить через менеджер пакетов brew :brew install coreutils
.
3 )Один вкладыш! gtimeout 10s networksetup -setairportnetwork en0 mywifi mypass >/dev/null && echo 1 || { ping -oq www.apple.com 2>&- >/dev/null && echo "Connected" || read -n1 -r -p "Connection failed. Press any key to continue..." ; } ;
gtimeout
:Gnutls по умолчанию добавляет префикс g к своим командам, чтобы избежать путаницы с существующими утилитами по умолчанию с тем же именем /dev/null, 2>&-
:избегать печати выходных данных и кодов ошибок различных команд read -n 1
:пауза до нажатия клавиши