LinuxForum.Fans
Тема

опции bash

Автор: Peter 19 сообщений 833 просмотров
10.10.2017 12:50 #425831

Здравствуйте!

Можно ли как-нибудь узнать, с какими опциями по "--enabled-..." собран bash?

10.10.2017 12:55 #425832

Нет.

10.10.2017 12:57 #425833

Весьма благодарен за быстрый ответ.

10.10.2017 14:06 #425834

Peter, man bash

Не помогает ни разу?

10.10.2017 15:22 #425835

stranger,
Все мимо.
Peter,
В самом bash нет возможности посмотреть опции, с которыми он собран, но можно скачать исходник для вашего дистрибутива. Например, в Slackware bash Патрик собирает с такими опциями:

text
--prefix=/usr
--mandir=/usr/man
--infodir=/usr/info
--build=x86_64-slackware-linux

Как видите, все отдано на волю случая зависит от набора установленного ПО.

10.10.2017 17:18 #425836

"man bash" мне в этом отношении как-то не помог, даже и после того,
как я скачал архив bash-4.2 из архива Debian с исходным текстом и посмотрел,
какие в configure есть опции. При этом с "--enable-profiling" не компилируется.
В самой configure prefix, как обычно, /usr/local.

10.10.2017 18:20 #425838
"yars" написал:
Все мимо.

Вовсе нет. Но в данный момент нет времени, не готов спорить. Готов признать Вашу правоту. Так проще.

10.10.2017 18:25 · отредактировано #425839

У Debian есть еще патч, его надо наложить на исходник bash и в debian/rules будут искомые опции сборки. Но можно и просто сам патч почитать.

stranger, вы правильно сказали, что у bash нет возможности посмотреть опции, с которыми его собрали, например, в выводе [console=inline]bash --help[/console], в отличие от mc, у которого такая возможность есть. Но причем здесь man bash, не понимаю. Там такого нет.

10.10.2017 20:15 #425842

Я всё это делаю в Astra LInux 1.3 и в deb-пакете для bash есть clear_console,
но при компиляции bash из Wheezy он не появился.

10.10.2017 23:36 #425849
"yars" написал:
Там такого нет.

Это был юмор. Жаль, не оценён. :(

Не взыщите. Что со старого дурака взять...

"Peter" написал:
при компиляции bash из Wheezy он не появился

А вот это уже интересно! Он должен был появиться в виде чего?

10.10.2017 23:54 #425850

В виде elf-файла в /usr/bin.

12.10.2017 10:19 #425873

Я так и не нашёл, откуда берётся clear_console,
grep даже не находит само это слово во всём каталоге.
Откуда же она берётся и как это делается? Она есть только в пакете с bash.

12.10.2017 14:25 #425874

А этот clear_console обязательно должен быть встроенным в bash?

12.10.2017 16:12 · отредактировано #425875

Не знаю, но clear_console находится именно в deb-пакете bash.

Ещё к моему перовначальному вопросу: я скомпилировал bash с опцией
--enable-net-redirections
и другими, после запуска configure создался файл config.h со строкой

text
#define NETWORK_REDIRECTIONS 1

значит ли это, что он скомпилируется с этой опцией?
И можно ли после запуска такого bash как-то убедиться из списка опций,
хотя бы косвенно, что эта опция включена?
Я пробовал запускать shopt, set, выводить BASHOPTS и SHELLOPTS,
но не понял.

12.10.2017 23:03 · отредактировано #425877
"Peter" написал:
И можно ли после запуска такого bash как-то убедиться из списка опций,
хотя бы косвенно, что эта опция включена?

Я не проверял такое, но полагаю, что если у bash-а такой возможности нет, то он выведет сообщение об ошибке, если попытаться ее использовать.
По поводу clear_console: полагаю, надо смотреть на redline, т.к. bash во многом опирается на его возможности.

"Peter" написал:
значит ли это, что он скомпилируется с этой опцией?

Разумеется, при условии, что для этого все необходимое установлено, иначе не соберется, ругаясь на "undefined reference to..."

12.10.2017 23:39 #425880

У меня скомпилировался вроде бы без замечаний.
Но ведь configure проверяет, есть ли всё достаточное для каждой опции, надеюсь, что она включилась.

13.10.2017 21:54 #425896

Я установил bash, скомпилированный с --enable-net-redirections, но всё равно команда в скрипте

text
exec 3<>/dev/tcp/192.168.1.7/$nprt

не выполняется, число в $nprt правильное, соединение происходит.
Дальше есть вызов ffmpeg и она сообщает, что нет такого файла, ещё для проверки я перед ffmpeg вставил команду

text

#read -r -u 3 -t 12 -n 40 $msg <&3
read -r -n 40 $msg <&3

тоже ничего не читается. Так в чём причина и что делать?

13.10.2017 22:12 #425897
"Peter" написал:
надеюсь, что она включилась.

Раз в config.h есть определение, значит, включилась, вы же сами показывали.

13.10.2017 23:21 #425899

Кажется, это был config.log, не помню точно. В выводе make есть некий redir.o.

Войдите или зарегистрируйтесь, чтобы ответить.