typeset的常见用法

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#设置一个只读变量
原文地址:https://www.cnblogs.com/tychyg/p/5067473.html