Ошибка двусмысленной перенаправления на разных томах с MySQL

Используйте 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 битов.

2
03.01.2019, 15:57
1 ответ

Расширения переменных следует заключать в кавычки, чтобы

  1. разбиение их значений на отдельные слова
  2. имя файла в результирующих словах (меньше проблем в вашем случае, возможно, ).

Если $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в первую очередь ).

Связанные:

2
27.01.2020, 22:02

Теги

Похожие вопросы