Да. <
>
означает то, что вы говорите, когда это относится к open()
. Но вы не делаете этого при работе с уже существующими файловыми дескрипторами - они уже open()
'd. Поэтому не имеет значения, какой из этих маркеров вы используете, потому что оболочка не собирается изменять характеристики чтения/записи уже имеющегося файлового дескриптора - она только dup()
его.
Так что...
{ read v <&4; } 4>/dev/null
read: read error: 0: Bad file descriptor
Но...
{ read v 0>&4; } 4</dev/null
...вообще не жалуется.
В обоих приведенных выше примерах дескрипторы файлов успешно дублируются. Оболочка не жалуется на дублирование fd, потому что это работает просто отлично. Вот практически то же самое, что и в предыдущем примере:
{ echo hi there; read v; } 0>/dev/null
hi there
read: read error: 0: Bad file descriptor
Здесь read
жалуется, потому что при попытке чтения из нулевого файлового дескриптора он получает EBADF. Оболочка так же успешно дублирует &4
на stdin в первом примере, как и успешно выполняет write-only open()
на stdin во втором.
На самом деле, в контексте fd dup лексемы <
и >
не совсем несущественны, потому что <&[num]
и >&[num]
все равно являются сокращением для 0<&[num]
и 1>&[num]
, конечно.
В лог-файле строки номер 69 и 70 — проблемы:
[ 211.520] (II) Unloading intel
[ 211.520] (EE) Failed to load module "intel" (module does not exist, 0)
Вы можете запустить команду sudo zypper in xf86-video-intel
, чтобы исправить это. Поскольку вы не видите рабочий стол, вы можете подключиться к WiFi с помощью nmcli
с того же экрана, который вы разместили.
Как это сделать:
Шаг 1 :Войдите в CLI с помощью root или ваших учетных данных. После этого выполните команду nmcli con up <mySSID> --ask
.
Шаг 2 :Введите пароль, после чего вы сможете увидеть статус подключения.
Шаг 3 :Теперь введите команду sudo zypper in xf86-video-intel
.
Шаг 4 :Перезагрузите ПК, запустив reboot now
или sudo reboot now
.
Теперь все должно быть исправлено, и вы увидите экран входа в систему и графический интерфейс.