本版版主招募中

 
标题: ksh 第3章<2>
xfc211
LU天使
Rank: 4



UID 790
精华 39
积分 519
帖子 882
活跃指数 -11
LU金币 1905 个
LU金条 0 个
阅读权限 80
注册 2003-10-20
 
发表于 2003-11-12 10:55  资料  个人空间  短消息  加为好友 
特定的参数:一些KSH专用的参数
?最后执行命令的状态,成功执行返回0;不成功执行返回1。
# date +%D
11/11/03
# print $?
0

$当前进程的ID;可以用来创建唯一的文件名
# print $$
13877

# print $$
13877
# touch /tmp/$0.$$
$ls /tmp
0 -rw-r--r-- 1 root other 0 Nov 11 09:19 ksh.13877

- 显示interactive and monitor options
# print $-
ism

ERRNO 显示最后一次系统出错的错误号
# print $ERRNO
13

$variable,${variable}
# CA=ca
# CA=$CAli
# print $CA
#

# CA=${CA}li
# print $CA
#cali

${# variable }
# print ${#CA}
4

${variable }

${ variable:-word },${ variable-word }
如果变量已经赋值或不为空,则退回赋值;如果变量没有赋值,退回word值
$ X=abc
$print ${X:-cde}
abc

$unset X
$print ${X:-cde}
cde
$print $X
$
但是X仍然保留不变。

${ variable:=word },${ variable=word }
如果变量已经赋值或不为空,则退回赋值;如果变量没有赋值,退回word值
$LBIN=/usr/bin
$print ${ LBIN:=/usr/local/bin}
/usr/bin

$unset LBIN
$print ${ LBIN:=/usr/local/bin}
/usr/local/bin

$print $ LBIN
/usr/local/bin

${ variable:?word },${ variable:?} ; ${ variable?word };${ variable? }
如果变量已经赋值或不为空,则退回赋值;如果变量没有赋值,打印 word值并退出。

$unset LBIN
$print ${ LBIN:?LBIN is not set}
/usr/local/bin

${ variable:+word };${ variable+word }
如果变量已经赋值或不为空,则退回word值

${ variable#pattern };${ variable##pattern }
从左边开始删除最小或最大匹配

# X=abcabcabc
# print ${X#abc*}
abcabc
# print ${X#abcd*}
abcabcabc

${ variable%pattern };${ variable%%pattern }
从右边开始删除最小或最大匹配
# print ${X%abc*}
abcabc
# print ${X%%abc*}

#

KSH支持四个查找、替换选项
${ variable//pattern1/ pattern2 },
${ variable/pattern1/ pattern2 },
${ variable#pattern1/ pattern2 },
${ variable%pattern1/ pattern2 },
# print $X
abcabcabc
# print ${X//abc/xyz}
xyz xyz xyz

# print ${X/abc/xyz}
xyz abc abc

子串
${ variable:start},${ variable:start:length}
# X=abcxyzdfg
# print $X
abcxyzdfg
# print ${X:0:3}
abc

# print ${X:3}
xyzdfg

队列变量。
一维队列从0到4096通过set –A or typeset命令设置
# set -A DAY Mon Tue Wed Thu Fri Sat Sun
# print $DAY
Mon
# print ${DAY[2]}
Wed

# print ${DAY[*]}
Mon Tue Wed Thu Fri Sat Sun
# print ${DAY[@]}
Mon Tue Wed Thu Fri Sat Sun
# print ${#DAY[*]}
7

队列变量属性
typeset – attribute variable[0]=value……

# typeset -u DAY u大写
# print ${DAY[*]}
MON TUE WED THU FRI SAT SUN

队列变量属性重新设置
set +A variable value0 value1 value2

quoting 引号 通常用在变量有空格或变量有特定的字符“” ` ` ‘ ’.

# X=123 345
ksh: 345: not found
# print $X

# X='123 345'
# print $X
123 345

# X='@#$%~!' ‘’ 隐藏变量中特定的字符
# print $X
@#$%~!

# print 'today is `date`'
today is `date`
# print today is`date`
today isWed Nov 12 09:52:44 CST 2003

“”功能同‘ ’但隐藏变量中特定的字符
# print '$X'
$X
# print "$X"
@#$%~!

` ` 通常输出命令值

顶部
 



当前时区 GMT+8, 现在时间是 2008-11-23 04:27
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.733049 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver