typeset用于设置变量属性,如大小写,宽度,左右对齐等都可以用typeset来控制, 当用typeset改变一个变量的属性时,这种改变是永久的,下面以ksh为例,演示typeset的几种典型用法 1,无选项的执行typeset,则显示所有变量 /home/lee#typeset typeset COLORS typeset -x COLORTERM typeset -x DISPLAY typeset -x GDMSESSION typeset -x GNOME_DESKTOP_SESSION_ID typeset -x GTK_RC_FILES typeset -x G_BROKEN_FILENAMES typeset -x HISTSIZE typeset -x HOME typeset -x HOSTNAME typeset IFS typeset -x INPUTRC typeset -r KSH_VERSION typeset -x LANG typeset -x LANGUAGE typeset -x LESSOPEN typeset -x LOGNAME typeset -x LS_COLORS typeset -x MAIL typeset -i MAILCHECK typeset -i OPTIND typeset -x PATH typeset -i PPID typeset -x PS1 typeset PS2 typeset PS3 typeset PS4 typeset -x PWD typeset -i RANDOM typeset -i SECONDS typeset -x SESSION_MANAGER typeset -x SHELL typeset -x SHLVL typeset -x SSH_AGENT_PID typeset -x SSH_ASKPASS typeset -x SSH_AUTH_SOCK typeset SUPPORTED typeset -x TERM typeset -i TMOUT typeset -x USER typeset -x USERNAME typeset -x WINDOWID typeset -x XAUTHORITY typeset -x XMODIFIERS typeset _ 2:typeset的-u选项可以将一个变量的字符变成大写 /home/lee#typeset -u var=abc /home/lee#echo $var ABC 3:typeset的-l选项将一个变量的字符变成小写 /home/lee#typeset -l var=ABC /home/lee#echo $var abc 4:typeset的-L选项把变量变成一个左对齐的4个字符串,有些像字符串截取 :-) /home/lee#typeset -L4 var=abcdefg /home/lee#echo $var abcd 5:typeset的-R选项把变量变成一个右对齐的4个字符串 /home/lee#typeset -R4 var=abcdefg /home/lee#echo $var defg 6:typeset的-Z选项把串变成一个空填充,占15个字符位的串,冒号用来保护空白符 /home/lee#typeset -Z15 var="abc ddd" /home/lee#echo "$var" ^^^^^^^^abc ddd #^为空白 /home/lee#typeset -LZ15 var="abc 123" /home/lee#echo "$var$var" abc 123 abc 123 7:变量n是一个被设置成一个整数的变量,typeset命令将整数n前面补齐0,共15个字符位 /home/lee#typeset -i n=24 /home/lee#typeset -Z15 n /home/lee#echo $n 000000000000024 8:变量answer被给定一个值--Yes并变成一个小写,左对齐,一个字符的串 /home/lee#typeset -lL1 answer=Yes /home/lee#echo $answer y typeset其他用法: typeset -i num #强制num为一个整数,如: /home/lee#typeset -i num=10 /home/lee#echo $num 10 /home/lee#typeset -i16 num=10 /home/lee#echo $num 16#a /home/lee#typeset -i2 num=10 /home/lee#echo $num 2#1010 /home/lee#typeset -i8 num=10 /home/lee#echo $num 8#12 typeset -x #显示被导出的变量 typeset a b c #如果在一个函数里定义,则把a b c创建为局部变量 typeset -r x=var#设置一个只读变量