shell脚本while循环、read读取控制台输入与函数
声明:
以下为个人笔记,内容不完全正确,请谨慎参考。
while循环
while循环结构
while [条件判断]
do
程序
done
脚本示例:
点击查看代码
#!/bin/bash
while [ $a -le $1]
do
sum=$[ $sum + $a ]
done
echo $sum
简易写法:
点击查看代码
#!/bin/bash
a=1
while [ $a -le $1 ]
do
let sum+=a
let a++
done
echo $sum
read 读取控制台输入
基本语法:
read(选项)(参数)
1、选项
-p: 指定读取值时的字符;
-t: 指定读取值等待时间(秒->s)如果-t 不加表示一直等待。
2、参数
变量: 指定读取值的变量名
示例:
点击查看代码
#!/bin/bash
read -t -p "请在5s内输入您的相关个人信息,超时将退出。" AS
echo $AS
函数
先举一个小栗子:
点击查看代码
#!/bin/bash
filename="$1"_log$(datename +%s)
echo $filename
1.1 basename
基本语法
basename [string/patename] [suffix]
功能描述:basename命令会删掉所有的前缀包括最后一个('/')字符,然后将字符串显示出来。
basename可理解为去路径的文件名
选项:
suffix为后缀,如果suffix被指定了,basename会将pathname中的suffix去掉。
脚本示例:
点击查看代码
#!/bin/bash
echo '========== $n ==========='
echo /home name: $(basename $0 .sh)
echo /home/xiaohu name: $(cd
$(dirname $0); pwd)
echo op name: $1
echo op name: $2
自定义函数:
基本语法:
[function] funname[0]
{
ACTION
[return int;]
}
技巧:
1、必须在调用函数地方之前,先声明函数,shell脚本是否在逐步运行,不会像其他语言一样先编译。
2、函数返回值,只能同归$?变量获得,可以显示加: return返回。
如果不加,将以最后一条命令运行结果,作为返回值。renturn[0~255]
脚本示例:
点击查看代码
#!/bin/bash
function add(){
s=$($1 + $2)
echo $s
}
echo '=========== 调用参数 ============'
read -p "请输入第一个整数:" a
read -p "请输入第二个整数: " b
echo '=============== 传参 ========='
sum=$[add $a $b]
echo "和:"$sum
echo "和的平方:"$[$sum * $sum]