Korn Shell是Unix系统下兼容Bourne Shell一种脚本环境。功能强大,常用做Unix环境配置和作业批处理。本文旨在通过讲解一个简单的图形打印程序,来对Korn Shell做出简单的语法讲解。
根据输入行数的不同打印输出不同大小的特殊字符三角形的程序(outputStar):
read loop;
i=1;
set –A star “/*”;
while ((i < $loop))
do
star[$(($i+1))]=”/*”;
print ${star[*]}
i=$(($i+1))
done
执行结果:
$ outputStar
5
/* /*
/* /* /*
/* /* /* /*
/* /* /* /* /*
1、 read命令简介:
read [o] name
将用户通过终端输入的串输入变量name,如果用户输入的串中有IFS中定义的分隔符(例如空格),则分隔符前后分为两项存入名为name的数组中。
[o]可用选项有:-p(从Shell生成的子进程中读取输入行)
–r(不把行尾的“/”视作行连接符)
–s(保存输入)
-un(从文件中读入)
注:选项中除-r外未经本文作者验证。
2、变量声明及引用:
i=1; #声明名为i的变量并赋值为1,注:等号前后不能有空格。
i=$(($i+1)); #对变量i的值进行重新计算,注:格式必须严格如此。
3、数组用法:
$ set –A arrayName 12 “this” ‘A’;
$ echo ${arrayName[*]}
12 this A
数组arrayName不定大小,例子中数组大小为4,arrayName[0]存放数组名,且在脚本中无法访问到,从arrayName[1]开始是用户输入的值,以IFS分隔符隔开,构成不同的数组项,未赋值的数组项被访问到则返回空值。
(待续)