Redhat/Fedora - Вопрос по командам set, env, declare, export

Ответить
 • Просмотры: 1
Аватара пользователя
vkostromin

Redhat/Fedora - Вопрос по командам set, env, declare, export

Сообщение vkostromin »

Не могу понять, чем объясняется разница в выводе команд set, env, export и declare (typeset). Вроде все они должны выводить перечень переменных среды (и функций), но вывод этих команд существенно отличается.

Может кто-нибудь толково объяснить, в чем их разница. В man-ах копался, но не понял.

В.Костромин
Аватара пользователя
vkostromin

Re: Redhat/Fedora - Вопрос по командам set, env, declare, export

Сообщение vkostromin »

Вот небольшая табличка показывающая объем файла и число строк в нем для 4 команд, каждая из которых должна вроде как выдавать состав текущего окружения (все запускались в одном и том же консольном окне, то есть в одинаковых условиях):



declare 3803 байта 77 строк

set 3776 байта 77 строк

export 3558 байта 67 строк

env 2861 байта 45 строк



Сравнивал вывод построчно, понять в чем причина отличий не могу.

Можете повторить эксперимент
Аватара пользователя
ruslandh

Re: Redhat/Fedora - Вопрос по командам set, env, declare, export

Сообщение ruslandh »

Может надо искать разницу исходя из основного предназначеия команды, а не действия по-умолчанию.

Соответственно их вывод ориентирован ддя перенаправления в ту или иную функцию.

set, export, declare - внутреннии функции shel

env - внешняя.



Например :

set [--abefhkmnptuvxBCHP] [-o опция] [аргумент ...]

При вызове без опций выдает имя и значение всех переменных командного интерпретатора в виде, пригодном для повторного выполнения присваиваний.







set - для установки значения

env - внешняя команда для запуска программы с заданными параметрами.

export - экспортирование значение переменной в среду bash

declare - задание переменной и массивов переменных



http://www.linux.org.ru/books/bash-conspect.html




http://ln.com.ua/~openxs/projects/man/uman047.html




и там-же :



http://ln.com.ua/~openxs/projects/man/uman076.html


http://ln.com.ua/~openxs/projects/man/uman077.html


http://ln.com.ua/~openxs/projects/man/uman078.html
Ответить

Вернуться в «Общий по Linux»