![]() |
Вопрос по командам set, env, declare, export
Не могу понять, чем объясняется разница в выводе команд set, env, export и declare (typeset). Вроде все они должны выводить перечень переменных среды (и функций), но вывод этих команд существенно отличается.
Может кто-нибудь толково объяснить, в чем их разница. В man-ах копался, но не понял. В.Костромин |
Вот небольшая табличка показывающая объем файла и число строк в нем для 4 команд, каждая из которых должна вроде как выдавать состав текущего окружения (все запускались в одном и том же консольном окне, то есть в одинаковых условиях):
declare 3803 байта 77 строк set 3776 байта 77 строк export 3558 байта 67 строк env 2861 байта 45 строк Сравнивал вывод построчно, понять в чем причина отличий не могу. Можете повторить эксперимент |
Может надо искать разницу исходя из основного предназначеия команды, а не действия по-умолчанию.
Соответственно их вывод ориентирован ддя перенаправления в ту или иную функцию. 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-