while循环
基本语法:1
#基本语法:
while [ 条件判断式 ]
do
程序
done
例子: 从命令行中输入一个n,统计从1+…+n的大小;
#!/bin/bash
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo sum=$SUM
read读取控制台的输入
上面都是用的命令行的形式输入的参数,比如
:./name.sh 10 20
这里的10 20 是跟随着命令行输入的参数,下面学习一下read
读取控制台的输入;
基本语法:read(选项)(参数)
选项:
-p
:指定读取值时的提示符;
-t
:指定读取时等待的时间(秒),如果没有在指定时间内输入,就不等待了;
参数: 就是变量,指定读取时的变量名;
例子 :读取控制台输入一个num值,并在10秒内实现;
#!/bin/bash
read -p "请输入一个值NUM1" NUM1
echo 你输入的值为NUM1= $NUM1
echo ---------------------------
read -t 10 -p "请输入一个值NUM2" NUM2
echo 你输入的值为NUM2= $NUM2
可以看到,从控制台输入,第一次NUM1 , NUM2两个都输入了,第二次NUM1 输入,NUM2超时没有输入,仍然返回了;
函数
shell编程和其他语言一样,有系统函数,也可以自定义函数。首先介绍两个常用得系统函数。
系统函数
(1)basename
基本语法:basename[pathname][suffix]
功能:返回完整路径最后 / 后面的部分,常用于获取文件名。
suffix为后缀,如果suffix被指定了,basename会将pathname或者string中的suffix去掉。
用命令行简单演示一下:
提示:这个命令行可以直接写在shell里,这里用命令行演示一下;
(2) dirname
基本语法:dirname 绝对路径
功能:返回路径最后 / 前面的部分,常用于返回路径部分;
自定义函数
基本语法:
function 函数名 ()
{
程序
}
#调用的话直接写函数名
例子:计算输入两个参数的和(用read控制台输入)getSum
function getSum()
{
SUM=$[$n1+$n2]
echo 和是 $SUM
}
read -p "请输入第一个参数 n1" n1
read -p "请输入第二个参数 n2" n2
# 调用getSum
getSum $n1 $n2
看到第一个参数是10,第二个参数是10,结果 和为 20;
关于shell编程的基本知识点到此结束啦~