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#設置一個只讀變量
