为什么我用set命令没有输出环境变量列表???

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
barryzhen
帖子: 6
注册时间: 2006-11-29 13:07

为什么我用set命令没有输出环境变量列表???

#1

帖子 barryzhen » 2007-04-27 13:09

我的系统是ubuntu6.06LTS
我在终端输入set命令,如下
user@HOME:~$set
显示的是如下的一堆函数,前半部分看不到,我把看到的部分贴出来:
;;
esac;
for ((i=1; i < COMP_CWORD; i++ ))
do
if [[ "${COMP_WORDS}" == --@(install|remove|auto|display|config) ]];then
mode=${COMP_WORDS};
args=$(($COMP_CWORD - i));
break;
fi;
done;
case $mode in
--install)
case $args in
1)
_filedir
;;
2)
installed_alternatives
;;
3)
_filedir
;;
esac
;;
--remove)
case $args in
1)
installed_alternatives
;;
2)
_filedir
;;
esac
;;
--auto)
installed_alternatives
;;
--display)
installed_alternatives
;;
--config)
installed_alternatives
;;
*)
COMPREPLY=($( compgen -W '--verbose --quiet --help --version \
--altdir --admindir' -- $cur ) $( compgen -W '--install --remove --auto --display \
--config' -- $cur ))
;;
esac
}
_user_at_host ()
{
local cur;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ $cur == *@* ]]; then
_known_hosts;
else
COMPREPLY=($( compgen -u -- "$cur" ));
fi;
return 0
}
_usergroup ()
{
local IFS='
';
cur=${cur//\\\\ / };
if [[ $cur = *@(\\:|.)* ]] && [ -n "$bash205" ]; then
user=${cur%%*([^:.])};
COMPREPLY=($(compgen -P ${user/\\\\} -g -- ${cur##*[.:]}));
else
if [[ $cur = *:* ]] && [ -n "$bash205" ]; then
COMPREPLY=($( compgen -g -- ${cur##*[.:]} ));
else
COMPREPLY=($( compgen -S : -u -- $cur ));
fi;
fi
}
_vgcfgbackup ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(f|-file))
_filedir;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -f --file -h --help \
--ignorelockingfailure -P --partial -v --verbose \
--version' -- $cur ));
else
_volumegroups;
fi
}
_vgcfgrestore ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(f|-file))
_filedir;
return 0
;;
-@(M|-metadatatype))
COMPREPLY=($( compgen -W '1 2' -- $cur ));
return 0
;;
-@(n|-name))
_volumegroups;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -f --file -l --list \
-h --help -M --Metadatatype -n --name -t --test \
-v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgchange ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(a|A|x|-available|-autobackup|-resizeable))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup --alloc -P \
--partial -d --debug -h --help --ignorelockingfailure \ -t --test -u --uuid -v --verbose --version -a \
--available -x --resizeable -l --logicalvolume \
--addtag --deltag' -- $cur ));
else
_volumegroups;
fi
}
_vgck ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -h \
-? --help -v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgconvert ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(M|-metadatatype))
COMPREPLY=($( compgen -W '1 2' -- $cur ));
return 0
;;
--metadatacopies)
COMPREPLY=($( compgen -W '0 1 2' -- $cur ));
return 0
;;
--metadatasize)
_sizes;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -h --help --labelsector \
-M --metadatatype --metadatacopies --metadatasize \
-t --test -v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgcreate ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
-@(M|-metadatatype))
COMPREPLY=($( compgen -W '1 2' -- $cur ));
return 0
;;
-@(s|-physicalextentsize))
_sizes;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup --addtag \
--alloc -d --debug -h --help -l --maxlogicalvolumes \
-M --metadatatype -p --maxphysicalvolumes -s \
--physicalextentsize -t --test -v --verbose \
--version' -- $cur ));
else
_args;
if [ $args -eq 0 ]; then
_volumegroups;
else
_physicalvolumes;
fi;
fi
}
_vgdisplay ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
--units)
_units;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-c --colon -C --columns --units \
-P --partial -A --activevolumegroups -v --verbose \
-d --debug -h --help --version' -- $cur ));
else
_volumegroups;
fi
}
_vgextend ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
-@(L|-size))
_sizes;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup -d --debug -h \
-? --help -t --test -v --verbose --version' -- $cur )); else
_args;
if [ $args -eq 0 ]; then
_volumegroups;
else
_physicalvolumes;
fi;
fi
}
_vgmerge ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup -d --debug \
-h --help -l --list -t --test -v --verbose \
--version' -- $cur ));
else
_volumegroups;
fi
}
_vgmknodes ()
{
local cur;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -h --help -v --verbose \
--version' -- $cur ));
else
_volumegroups;
fi
}
_vgport ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-a --all -d --debug -h \
-? --help -v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgreduce ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-a --all -A --autobackup -d \
--debug -h --help --removemissing -t --test -v \
--verbose --version' -- $cur ));
else
_args;
if [ $args -eq 0 ]; then
_volumegroups;
else
_physicalvolumes;
fi;
fi
}
_vgremove ()
{
local cur;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -h --help -t --test \
-v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgrename ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup -d --debug -h \
-? --help -t --test -v --verbose --version' -- $cur )); else
_volumegroups;
fi
}
_vgs ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(o|O|-options|-sort))
COMPREPLY=($( compgen -W 'vg_fmt vg_uuid vg_name \
vg_attr vg_size vg_free vg_sysid \
vg_extent_size vg_extent_count vg_free_count \
max_lv max_pv pv_count lv_count snap_count \
vg_seqno' -- $cur ));
return 0
;;
--units)
_units;
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '--aligned -d --debug \
-h --help --ignorelockingfailure --noheadings \
--nosuffix -o --options -O --sort -P --partial \
--separator --unbuffered --units \
-v --verbose --version' -- $cur ));
else
_volumegroups;
fi
}
_vgscan ()
{
local cur;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-d --debug -h --help \
--ignorelockingfailure --mknodes -P \
--partial -v --verbose --version' -- $cur ));
fi
}
_vgsplit ()
{
local cur prev;
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case "$prev" in
-@(A|-autobackup))
COMPREPLY=($( compgen -W 'y n' -- $cur ));
return 0
;;
-@(M|-metadatatype))
COMPREPLY=($( compgen -W '1 2' -- $cur ));
return 0
;;
esac;
if [[ "$cur" == -* ]]; then
COMPREPLY=($( compgen -W '-A --autobackup -d --debug \
-h --help -l --list -M --metadatatype -t --test \
-v --verbose --version' -- $cur ));
else
_args;
if [ $args -eq 0 -o $args -eq 1 ]; then
_volumegroups;
else
_physicalvolumes;
fi;
fi
}
_volumegroups ()
{
COMPREPLY=($(compgen -W "$( vgscan 2>/dev/null | sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- $cur ))
}
_wvdial ()
{
local cur prev config i IFS='
';
COMPREPLY=();
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
case $prev in
--config)
_filedir;
return 0
;;
esac;
case $cur in
-*)
COMPREPLY=($( compgen -W '--config --chat \
--remotename --help --version --no-syslog' - - $cur ))
;;
*)
config="/etc/wvdial.conf"' '"$HOME/.wvdialrc";
for ((i=1; i < COMP_CWORD; i++ ))
do
if [[ "${COMP_WORDS}" == "--config" ]]; then
config=${COMP_WORDS[i+1]};
break;
fi;
done;
COMPREPLY=($( sed -ne "s|^\[Dialer \($cur.*\)\]$|\1|p" $config 2>/dev/null |grep -v '^Defaults$'));
COMPREPLY=${COMPREPLY// /\\ }
;;
esac
}
installed_alternatives ()
{
local admindir;
for i in alternatives dpkg/alternatives rpm/alternatives;
do
[ -d /var/lib/$i ] && admindir=/var/lib/$i && break;
done;
for ((i=1; i < COMP_CWORD; i++ ))
do
if [[ "${COMP_WORDS}" == --admindir ]]; then
admindir=${COMP_WORDS[i+1]};
break;
fi;
done;
COMPREPLY=($( command ls $admindir | grep "^$cur" ))
}

就是这一堆东西,我不知道为什么没有输出我期望的环境变量列表

大虾们给菜鸟解决一下喽!:)
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#2

帖子 stlxv » 2007-04-27 13:11

代码: 全选

env
PHP是最好的语言!不服来战!
barryzhen
帖子: 6
注册时间: 2006-11-29 13:07

#3

帖子 barryzhen » 2007-04-27 13:35

我知道env也可以输出环境变量列表
但是它跟set还是有区别的阿

我主要是想知道我的set出了什么问题。
ziyun
帖子: 262
注册时间: 2007-03-29 12:59

#4

帖子 ziyun » 2007-04-27 13:39

我一直不知道在ubuntu下怎么输出环境变量列表,原来是env啊,redhat下是set
barryzhen
帖子: 6
注册时间: 2006-11-29 13:07

#5

帖子 barryzhen » 2007-04-27 14:26

ubuntu下面不能用set输出吗??

我看到很多人说一般两种都可以
但是有一定区别的阿,如下
env列出的是所有的环境(被导出的)变量,这些变量可以传递给任意子进程
set列出的是所有设置的变量,局部的和导出的,也包括设置为空的变量
具体的比较要自己动手测试一下~
头像
依寻依然
帖子: 1617
注册时间: 2006-10-31 14:49

#6

帖子 依寻依然 » 2007-04-27 16:38

其实已经输出了,只是很长很长,把前面的环境变量给挤掉了
你这样看就是了
set|more
barryzhen
帖子: 6
注册时间: 2006-11-29 13:07

#7

帖子 barryzhen » 2007-04-29 15:25

是哦
受益匪浅!!!
thank u very much!!! :o
xiaqin1983
帖子: 94
注册时间: 2006-02-27 18:10
来自: 重庆

#8

帖子 xiaqin1983 » 2007-08-21 22:37

顶楼上的!

强烈鄙视2楼的stlxv
恶心!
shooter9527
帖子: 4
注册时间: 2008-11-08 15:41

Re: 为什么我用set命令没有输出环境变量列表???

#9

帖子 shooter9527 » 2009-03-07 10:09

受教了,看来要多实践,光看书不够呐。
回复