Linux:shell脚本入门笔记

目录

Shell简介:

第一个shell脚本:

Shell的脚本变量: 

​ 条件测试:

控制语句与函数:

代码示例:


Shell简介:

  • Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁;
  • Shell既是一种应用程序,又是一种程序设计语言;
  • 作为应用程序:
  1. 我们称之为shell命令解析器;
  2. shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层;
  3. 用户在提示符下输入的命令都由shell先解释然后传给Linux核心,它调用了系统核心的大部分功能来执行程序、并以并行的方式协调各个程序的运行;
  4. Linux系统中提供了好几种不同的shell命令解释器,如sh、ash,bash等;
  5. linux系统一般默认使用bash作为默认的解释器。

  • 作为程序设计语言:
  1. 我们称之为shell脚本;
  2. 不同于我们学过的c/c++等语言,他不是一种编译性语言,即编写完成后需要使用编译器完成编译、汇编、链接等过程变为二进制代码方可执行;
  3. shell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行;
  • shell脚本主要用于:帮助开发人员或系统管理员将复杂而又反复的操作放在一个 文件中,通用简单的一步执行操作完成相应任务,从而解放他们的负担。

第一个shell脚本:

步骤:编译、保存、改权限、运行/排错
常见的shell脚本存放在/etc/shells目录下
vi hello.sh(创建文件,以.sh结尾)
  • 首行定义:#!/bin/bash;(#!用来声明脚本由什么shell解释,否则使用默认shell)
  • 单个"#"号代表注释当前行。
#!/bin/bash

echo "hello,world"

chmod +x hello.sh(给执行权限)

运行shell:
  1. ./
  2. 指定编译器运行
  3. source或.

Shell的脚本变量: 

定义自己的变量:

变量名=变量值
例如:num=10

引用变量:

$变量名
例如:i=$num 把变量num的值赋给变量i

显示变量:

使用echo命令就可以显示单个变量的取值

清除变量:

使用unset命令清除变量
unset num
注意事项:

变量的特殊用法:

 
注意:最后一个指令必须使用source xxx.sh才可以生效

预定义变量:

脚本变量的特殊用法:

条件测试:

(具体代码见示例)

控制语句与函数:

if语句、case语句、for语句、while语句、函数(与C语言都十分类似,具体用法见代码示例)

代码示例:

test1.sh

#!/bin/bash

#获得当前脚本的文件名
echo "$0"
#传递给脚本的参数
echo "$1"
echo "$2"
#传递给脚本的参数的数量
echo "$#"
#传递给脚本的所有参数
echo "$*"
#当前shell的进程ID
echo "$$"
test2.sh
#!/bin/bash

read -p "please input num1:" num1
read -p "please input num2:" num2

#-eq 判断数值是否相等
#-ne 判断数值是否不相等
#-gt 判断数值是否大于
#-lt 判断数值是否小于
#-ge 判断数值是否大于等于
#-le 判断数值是否小于等于
#-z str 判断字符串str是否为空
#-n str 判断字符串str是否为非空
#-d filename 判断文件是否存在并且是否为目录文件
#-f filename 判断文件是否存在并且是否为普通文件
[ $num1 -gt $num2 ] && echo "num1>num2"
test3.sh
#!/bin/bash

echo "please input num1:"
read num1
echo "please input num2:"
read num2

if (($num1>$num2))
then
        echo "num1>num2"
elif (($num1==$num2))
then
        echo "num1=num2"
else
        echo "num1<num2"
fi

test4.sh

#!/bin/bash

echo "please input num1:"
read num1

case $num1 in
        1)
                echo "num1=1"
                ;;
        2)
                echo "num1=2"
                ;;
        3)
                echo "num1=3"
                ;;
        *)
                echo "no this num"
                exit 1
esac

test5.sh

#!/bin/bash
#declare 是bash的一个内建命令,可以用来声明shell变量,设置变量的属性。declare也可以写做typeset
#declare -i sum 代表强制把sum变量作为int型参数运算
declare -i sum
for (( i=1;i<=100;i=i+1 ))
do
        sum=sum+1
done

echo "result is $sum"

test6.sh

#!/bin/bash

#for i in 1 2 3 4 5 6 7 8 9
#for i in {1..9}
#for i in `ls`
#for i in "$*"
for i in "$@"
do
        echo "$i"
done

test7.sh

#!/bin/bash

num=0
declare -i s
while (( num<10 ))
do
        echo "$num"
        num=$(( num+1 ));
        s=s+1
done
echo "$s"

test8.sh

#!/bin/bash

inputnum()
{
        if (( $#!=1 ))
        then
                echo "please input a num"
        elif (( $1<100 ))
        then
                echo "num<100"
        else
                echo "num>=100"
        fi
}

echo "please inuput a num:"
read num
inputnum $num

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值