【shell编程】

文章目录

  • Shell编程(熟悉)
    • 1. 基本概念
    • 2. 编写第一个程序
    • 3. 执行Shell程序的方式
    • 4. 变量的定义
      • 4.1 语法格式
      • 4.2 定义规则
    • 5. 常用运算符
      • 5.1 算术运算符
      • 5.2 关系运算符
      • 5.3 流程控制语句
        • 1. if 判断
        • 2. case 语句
        • 3. for 循环
        • 4. while循环
        • 5. 函数

Shell编程(熟悉)

1. 基本概念

  • Shell是一个命令行解释器,可以接收应用程序或用户命令,然后访问操作系统内核。
  • Shell是一个功能相当强大的编程语言,易编写、易调试、灵活性强;

2. 编写第一个程序

使用vi工具创建xxx.sh的文件。

以#!/bin/bash开头并编写代码后保存。

[zdk@localhost shell]$ vi hello.sh
#!/bin/bash
echo HelloWorld!	#回环打印

3. 执行Shell程序的方式

方式一:sh 文件名.sh,此方式需要执行权限。

#赋予权限
[zdk@localhost shell]$ ll
总用量 4
-rw-rw-r--. 1 zdk zdk 29 49 13:35 hello.sh

#给属主用户添加权限
[zdk@localhost shell]$ chmod u+x hello.sh
[zdk@localhost shell]$ ll
总用量 4
-rwxrw-r--. 1 zdk zdk 29 49 13:35 hello.sh

#执行文件
[zdk@localhost shell]$ bash hello.sh
HelloWorld!

方式二:/bin/bash 文件名,此方式不需要执行权限。

[zdk@localhost shell]$ bash hello.sh
HelloWorld!

4. 变量的定义

4.1 语法格式

定义变量:变量=值

撤销变量:unset 变量

[zdk@localhost shell]$ vi var.sh
#!/bin/bash
name=lx         #定义一个名为name,值为lx的变量,定义的规则:等号两边不允许有空格
echo $name
#unset name     #撤销变量name的赋值
echo $name

#show='my self!$name'   变量的取值中如果有空格,需要使用单引号或者双引号括起来 
#单引号和双引号的区别:单引号无法引用其他变量的取值,双引号可以引用其他变量的取值
show="my self!$name"
echo $show

4.2 定义规则

  • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
  • 不能使用bash里的关键字。
  • 中间不能有空格,可以有下划线。
  • 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
  • 变量的值如果有空格,需要使用双引号或单引号括起来。

5. 常用运算符

5.1 算术运算符

【shell编程】_第1张图片

[zdk@localhost shell]$ vi arithmetic.sh
#!/bin/bash
#定义两个变量
ia=5
ib=2

#输出两个变量的值
echo "ia=$ia"
echo "ib=$ib"

#进行算数运算 ` `里进行的运算,算术符要进行空格
echo `expr $ia + $ib`

#使用其他方式进行算数运算
ic=$[$ia+$ib]
echo $ic

id=$(($ia+$ib))
echo $id

#运行
[zdk@localhost shell]$ sh arithmetic.sh
ia=5
ib=2
7
7
7

5.2 关系运算符

【shell编程】_第2张图片

5.3 流程控制语句

1. if 判断

if [ 条件判断式 ]
  then
  程序
fi
[zdk@localhost shell]$ vi if.sh
#!/bin/bash

#定义一个变量来记录成绩
score=56
echo $score

#使用if语句来比较成绩并给出对应的提示信息
if [ $score -gt 60 ]
  then
    echo "考的不错哦"
elif [ $score -eq 60 ]
  then
    echo "60分,恭喜你刚好及格"
else
  echo "不及格,下学期记得来补考"
fi
~   
[zdk@localhost shell]$ sh if.sh
61
考的不错哦

2. case 语句

case $变量名 in
"值1")
 如果变量的值等于值1,则执行程序1
 ;;
"值2")
 如果变量的值等于值2,则执行程序2
 ;;
…省略其他分支…
*)
 如果变量的值都不是以上的值,则执行此程序
 ;;
esac
[zdk@localhost shell]$ vi case.sh
#!/bin/bash
echo "请输入1-4之间的整数"
read num        #读取一个整数并使用num记录

case $num in
  1) echo "你选择了1号业务"
  ;;
  2) echo "你选择了2号业务"
  ;;
  3) echo "你选择了3号业务"
  ;;
  4) echo "你选择了4号业务"
  ;;
  *) echo "你没有选择业务"
  ;;
esac

[zdk@localhost shell]$ sh case.sh
请输入1-4之间的整数
1
你选择了1号业务
[zdk@localhost shell]$ sh case.sh
请输入1-4之间的整数
2
你选择了2号业务
[zdk@localhost shell]$ sh case.sh
请输入1-4之间的整数
3
你选择了3号业务
[zdk@localhost shell]$ sh case.sh
请输入1-4之间的整数
4
你选择了4号业务
[zdk@localhost shell]$ sh case.sh
请输入1-4之间的整数
5
你没有选择业务

3. for 循环

for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
[zdk@localhost shell]$ vi for.sh
#!/bin/bash

#定义一个变量来记录计算结果
sum=0

#使用for循环来计算1~100的累加和
for(( i=1;i<=100;i++ ))
 do
  sum=$[$sum+$i]
 done

#打印计算结果
echo $sum

[zdk@localhost shell]$ sh for.sh
5050

4. while循环

while [ 条件判断式 ]
do
程序
done
[zdk@localhost shell]$ vi while.sh
#!/bin/bash

#定义两个变量用来记录累加和还有初始值
sum=0
i=1

#使用while循环用来进行1~100的累加和计算
while [ $i -le 100 ]
 do
  sum=$[$sum+$i]
  i=$[$i+1]
 done
echo $sum

[zdk@localhost shell]$ sh while.sh
5050

5. 函数

[ function ] funname[()]
{
 Action;
 [return int;]
}
funname
[zdk@localhost shell]$ vi function.sh
#!/bin/bash

#定义一个函数实现两个参数的相加并打印
function sum ( )
 {
   s=$[$1+$2]   #第一个参数和第二个参数相加
   echo $s
 }

#提示用户从键盘输入两个参数
read -p "input num1:" num1
read -p "input num2:" num2

#调用函数,并给函数的两个参数赋值
sum $num1 $num2

[zdk@localhost shell]$ sh function.sh
input num1:2
input num2:3
5

你可能感兴趣的:(Linxu编程,linux,shell编程,xshell)