一、条件判断
1.if判断
(1)基本语法
if [ 条件判断式 ]
then
程序
fi
注意事项:
1.[ 条件判断式 ]中括号和条件判断式之间必须有空格
2.if后要有空格
(2)实操
输入一个数字,如果是1,则输出java,如果是2,则输出python,如果是其它,则输出linux
#!/bin/bash
if [ $1 -eq 1 ]
then
echo "java"
elif [ $1 -eq 2 ]
then
echo "python"
else
echo "linux"
fi
2.case语句
(1)基本语法
case $变量名 in
"值1")
程序1
;;
"值2")
程序2
;;
*)
程序3
;;
esac
注意事项:
1.case行尾必须为单词"in",每一个模式匹配都必须以右括号")"结束
2.双分号";;"表示命令序列结束,相当于java的break
3.最后的" *) "表示默认模式,相当于java的default
(2)实操
输入一个数字,如果是1,则输出java,如果是2,则输出linux,如果是其它,则输出C++
#!/bin/bash
case $1 in
1)
echo "java"
;;
2)
echo "linux"
;;
*)
echo "C++"
;;
esac
3.for循环
(1)基本语法1
for((初始值;循环控制条件;变量变化))
do
程序
done
(2)实操1
从1加到100
#!/bin/bash
s=0;
for((i=1;i<=100;i++))
do
s=$[$s+$i]
done
echo $s
(3)基本语法2
for 变量 in 值1 值2 值3...
do
程序
done
(4)实操2
#!/bin/bash
for i in $*
do
echo "parameter: ${i}"
done
4.while循环
(1)基本语法
while [ 条件判断式 ]
do
程序
done
(2)案例
输出一个数字,从1加到100
#!/bin/bash
s=0;
i=1;
while [ $i -le 100 ]
do
s=$[$s+$i];
i=$[$i+1];
done
echo $s
二、read读取控制台输入
1.基本语法
read(选项)(参数)
选项:
-p:指定读取值时的提示符
-t:指定读取值时等待的时间(秒)
参数:
变量:指定读取值的变量名
2.实操
提示7秒内,读取控制台输入的名称
#!/bin/bash
read -t 7 -p "please input your name in 7 seconds: " NAME
echo $NAME
三、函数
1.系统函数
(1)basename基本语法
basename命令会删掉所有的前缀包括最后一个'/'字符,然后将字符串显示出来
basename [string/pathname] [suffix]
(2)实操
截取/home/depo/shell/read.sh路径的文件名称
[depo@dev shell]$ basename /home/depo/shell/read.sh
read.sh
(3)dirname基本语法
从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径
dirname 文件绝对路径
(4)实操
获取read.sh文件的路径
[depo@dev shell]$ dirname /home/depo/shell/read.sh
/home/depo/shell
2.自定义函数
(1)基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
funname
注意:
1.必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样一样先编译
2.函数返回值,只能通过$?系统变量获得,可以显示加return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数组(0-255)
(2)实操
计算两个输入参数的和
#!/bin/bash
function sum()
{
s=0;
s=$[$1+$2];
echo $s
}
read -p "input your parameter1: " p1
read -p "input your parameter2: " p2
sum $p1 $p2
本文详细介绍了Shell脚本的基础知识,包括条件判断、循环结构、读取控制台输入及函数使用。通过具体实例,如数字判断、求和运算等,帮助读者掌握Shell脚本编程的基本语法。
33万+

被折叠的 条评论
为什么被折叠?



