Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Вопрос по командам set, env, declare, export (http://forum.oszone.net/showthread.php?t=92135)

vkostromin 14-10-2007 14:04 660216

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

vkostromin 14-10-2007 15:41 660255

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

declare 3803 байта 77 строк
set 3776 байта 77 строк
export 3558 байта 67 строк
env 2861 байта 45 строк

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

ruslandh 14-10-2007 16:01 660268

Может надо искать разницу исходя из основного предназначеия команды, а не действия по-умолчанию.
Соответственно их вывод ориентирован ддя перенаправления в ту или иную функцию.
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


Время: 11:36.

Время: 11:36.
© OSzone.net 2001-