Используйте rfkill:
$ rfkill block all
Это отключит все беспроводные адаптеры, WiFi, Bluetooth, NFC, GPS, все, что встроено в ваш компьютер. Если вы хотите отключить только один конкретный адаптер, узнайте его ID с помощью
$ rfkill list
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
В этом примере ID чипа WiFi - 1
. Заблокируйте его с помощью
rfkill block 1
Чтобы снова включить этот интерфейс, используйте
rfkill unblock 1
Чтобы снова включить все интерфейсы, используйте
rfkill unblock all
Вы также можете, например, отключить только все адаптеры WiFi и оставить остальные, заменив all
на wifi
. Вот полный список используемых типов из man rfkill
:
block index|type
Disable the device corresponding to the given index. type is one of "all",
"wifi", "wlan", "bluetooth", "uwb", "ultrawideband", "wimax", "wwan", "gps",
"fm" or "nfc".
Если у вас не установлен rfkill
, установите его с помощью
# pacman -S rfkill
PS: Я понятия не имею, почему rfkill работает при запуске от имени непривилегированного пользователя. На моем Mint у него нет setuid
или setgid
битов.
Расширения переменных следует заключать в кавычки, чтобы
Если $PWD
содержит пробел, и если переменная IFS
имеет значение по умолчанию (пробел, табуляцию и новую строку ), то $currdir/$exname.sql
будет разбито как минимум на два слова. Это приведет к появлению вашего сообщения об ошибке «двусмысленное перенаправление» в bash
.
Чтобы решить эту проблему, заключите в кавычки все расширения переменных (, особенно $dbpass
, так как пароли обычно содержат специальные символы):
if [ "$1" = "import" ]; then
( cd "$dbpath" &&
./mysql -u "$dbuser" -p"$dbpass" "$dbname" <"$currdir/$exname.sql" )
fi
Здесь я дополнительно выполнил вызовы cd
и mysql
в подоболочке, чтобы предотвратить cd
изменение рабочего каталога для остальной части скрипта (, хотя неясно, почему вы на самом деле нужен cd
в первую очередь ).
Связанные: