SHELL脚本基础语言

本文介绍了Shell脚本中的if-then-else、多分支、条件判断、输入输出、case选择、for和while/until循环,以及函数的定义、参数传递和返回值获取。
摘要由CSDN通过智能技术生成

  1. if 分支控制流---单分支
if 测试语句  
then 
(真执行)
fi      
------------
if [判断表达式]
then
(真执行)
fi
 
#上述的判断等价于C语言的 if(表达式) {}

例子:
1.使用 test 语句进行判断 
if test "abc" = "abc"
then 
echo "字符串相同"
fi 

2.使用 [ ]  代替test语句  
if [ "123" = "123" ]
then 
echo "字符串相同"
fi 

注意:编写表达式的时候,一定要注意空格问题 !

2.多分支 

语法:
if [ 表达式 ]
then 
(真执行)
elif [ 表达式 ]
then
(真执行)
elif  [ 表达式 ]
then
(真执行) 
.....
else 
(假执行)
fi  
--------------------------
等价于C 语言的  if() {}  else if() {} ..... else {} 


多分支判断例子: 
#定义一个整型数据
declare -i VAR=$1; 

#进行多分支判断 
if [ $VAR -gt 100 ]
then  
echo "VAR > 100"
elif [ $VAR -gt 50 ]
then  
echo "VAR > 50" 
elif [ $VAR -gt 20 ]
then  
echo "VAR > 20"
else
echo "VAR < 20"
fi

3.Shell 脚本的输入输出 

//相当于printf   输出  
echo   -e "hello\tworld"  #激活转义字符
echo      "hello\tworld"   #不激活转义字符   


//相当于scanf  输入  
read name  #从标准输入读取输入并赋值给变量 name。

read -p "text"
打印提示(text),等待输入,并将输入存储在REPLY中。

---------------------------------------------------------------
#从键盘中获取数据放入变量 VAR 中
read  VAR 
echo $VAR

#从键盘中获取数据放入变量 VAR 中
read -p "请输入数据的值"  VAR1 
echo $VAR1

#默认会把数据存储到  REPLY 环境变量中  
read -p "text"   
echo  $REPLY

4.Shell 选择控制流

语法: 
case  变量  in 
    数据1) 语句 ;;
    数据2) 语句 ;; 
    数据3) 语句 ;; 
    *)     语句 ;; 
esac

#相当于C语言的  switch   
switch (变量)
case 数据1:   语句;  break;
case 数据2:   语句;  break;
default:   语句;   break; 

---------例子------------
read -p "请输入一个整型数据"  VAR 

case $VAR in 
    1)  echo "输入数据1" ;;  
    2)  echo "输入数据2" ;; 
    3)  echo "输入数据3" ;;
    *)  echo "输入数据*" ;;
esac

 5.Shell 循环控制流--for 循环

语法: 
for  变量  in  {一定范围的值}     #把in 后面的值不断赋值给  变量   直到赋值完毕为止 ! 
do 
执行语句 
done 

------例子:输出0-20的所有值----------
#从1 开始 到 20 不断赋值给  VAR  
for VAR in {1..20}
do 
echo $VAR 
done  

----例子:把一个命令的结果赋值给变量进行循环----
for STR in `ls`
do 
echo $STR 
done  

6. while 循环

语法:
while [ 表达式 ]   #当前表达式为真时,会执行语句。表达为假则结束循环
do
语句
done 

#等价于  C语言 while(表达式) { 语句 }

------例子:输出 0 - 100 以内的所有数据 
while [ $a -le 100 ]
do
echo $a 
a=$a+1
done 

7.until 循环 

语法: 
until [ 表达式 ]  #当表达式为假,则执行循环   当表达式为真,则结束循环
do
语句 
done 

8.

Shell 函数

注意: 1.shell 函数定义的时候 不需要填写参数类型 与 函数的返回值类型 ,返回值默认为整型

2.shell 函数传递参数通过 命令行参数 $1 $2 $3 ... 获取

定义语法:
函数名() 
{
    //函数的功能
    return 0;         
}

调用语法:
函数名  参数1  参数2  

-------------例子:函数的定义与调用-------------
#!/bin/bash 
#定义一个函数 
myfunc()
{
    echo "哈哈哈!我是一个函数!"
}
#调用函数 
myfunc 

 9.函数参数传递

#!/bin/bash 
#定义一个函数 
myfunc()
{
    #接收函数传递的参数  
    ARGV_1=$1 
    ARGV_2=$2    
    #打印参数的个数   
    echo  $#    
    #打印参数的值 
    echo $ARGV_1 
    echo $ARGV_2
  
}

#调用函数,并传递参数  
myfunc   hello  world

10.获取函数的返回值 

#!/bin/bash 
#定义一个函数 
myfunc()
{
    echo "函数1被调用"
    return  5;
}

#定义一个函数 
myfunc2()
{
    echo "函数2被调用"
    return  8;
}

#调用函数 
myfunc 
#获取函数的返回值 
echo  $? 

myfunc2  
echo $?  
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值