Посмотрите каталог /etc/modprobe.d/. Если есть файл blacklist -native -rtl8192.conf. Прокомментируйте все его строки и сохраните. Затем попробуйте запустить
sudo modprobe rtl8732be
Затем следуйте инструкциям наhttps://askubuntu.com/questions/772180/wifi-not-working-on-realtek-rtl8723be-wifi-adapter
Была точно такая же проблема на моей Ubuntu 16.04.
cut
по умолчанию читает со стандартного ввода. В вашей подстановке команд стандартный ввод наследуется от стандартного ввода цикла (, поскольку вы не предоставляете никакого другого явного ввода для вызововcut
). Стандартный ввод цикла поступает из вашего входного файла.
Эффект заключается в том, что первая строка вашего файла читается read
, а все остальные строки читаются самым первым вызовом cut
. Таким образом, значением в переменной jobid
будет новая строка -с разделителями строк идентификаторов заданий, в то время как переменная id
будет пустой. Цикл будет выполнять только одну итерацию.
Вы можете использовать , например,
id=$( printf '%s\n' "$line" | cut -d: -f1 )
# or: id=$( cut -d: -f1 <<<"$line" )
# (in shells that supports "here-strings")
но в этом нет необходимости, так как это будет чище и гораздо эффективнее
while IFS=: read -r id jobid; do
# code that uses "$id" and "$jobid" goes here
done <my_file.txt
Здесь используется тот факт, что read
может считывать данные из строки ввода в несколько переменных одновременно. Установив для IFS
двоеточие, строка разделяется на двоеточие, и первое поле считывается в id
, а остальные считываются в jobid
. Нет необходимости звонить cut
вообще.