URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10331
[ Назад ]

Исходное сообщение
"exec 7<&0 </dev/null 6>&1"

Отправлено Аноним , 29-Сен-20 10:18 

#!/bin/sh
...
exec 7<&0 </dev/null 6>&1
...

Не могу распарсить. Помогите.


Содержание

Сообщения в этом обсуждении
"exec 7<&0 </dev/null 6>&1"
Отправлено Аноним , 29-Сен-20 10:23 
 
#!/bin/sh

Всегда происходит запись в:
>/dev/null

И считывание с:
</dev/zero

Считывание с /dev/null использовался не должно как и запись в /dev/zero.


"exec 7<&0 </dev/null 6>&1"
Отправлено Аноним , 10-Дек-20 20:10 
>
 
> #!/bin/sh
> ...
> exec 7<&0 </dev/null 6>&1
> ...
>

> Не могу распарсить. Помогите.

Помоги себе сам: https://www.opennet.ru/docs/RUS/bash_scripting_guide/c11620....
Я знаю, ты сможешь.


"exec 7<&0 </dev/null 6>&1"
Отправлено Аноним , 11-Дек-20 08:09 
Спасибо за ссылку.

Понятно:
exec 7<&0 6>&1
Так тоже было бы понятно:
exec 7<&0 <$EOF 6>&1

А вот так
exec 7<&0 </dev/null 6>&1
Меня смущает чтение с null хоть в доке написано: https://man7.org/linux/man-pages/man4/null.4.html
"Reads from /dev/null always return end of file"

Прочел https://www.opennet.ru/opennews/art.shtml?num=53545 "Для взаимодействия клиента с модулем ядра используется псевдоустройство, например /dev/zero. Модуль ядра выполняет разбор всех записываемых в устройство данных" и зделал:
cmod 444 /dev/zero
cmod 222 /dev/null
Все скрипты и проги работают. А вот configure при компиляции некоторых пакетов падает при попытке считать с /dev/null в указанной строке.


"exec 7<&0 </dev/null 6>&1"
Отправлено Аноним , 11-Дек-20 15:21 
Очевидно, смысл и есть в том, чтобы не считывалось ничего. Зачем — это по контексту надо смотреть. Возможно, там запускается какая-то программа, которая иначе ждала бы пользовательского ввода.