shell脚本入门

1.概述

shell脚本就是一个文件,包含一系列要执行的的shell指令

2.格式

  • shell脚本扩展名为.sh

  • shell脚本的开头固定为#!/bin/bash ; (使用bash)
    *bash: Unix shell的一种,是一个命令处理器,通常运行于文本窗口中,并能 执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。

  • 脚本可能没有执行权力,通过chmod进行更改,方法见【入口】

3. 命令语法

3.1 输入输出

  • 3.1.1 echo打印指令

    echo "打印内容/'$变量名'"
    
     变量的使用:`$变量名`
    
  • 3.1.2 read输入读取

    read [参数] [变量]
    
    参数解释
    -a定义其变量为数组,赋值,默认是以空格为分割符
    -p后面加提示信息,即在输入前打印提示信息
    -e在输入的时候可以使用命令补全功能
    -n紧接一个数字,定义输入文本的长度
    -s输入字符时不在屏幕上显示,如boot用户密码
    -t后面跟数字,其为输入字符的时间,超过跳出
    -u跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的

3.2 数值计算

  • $((“变量名” ±x/ “变量名”)) 或者 $[“变量名” ±x/ “变量名”]
  • 只支持整形数据
    注意,赋值给变量时,等号左右不能有空格
result=$((a+b)) #等号两边不能有空格
#result=$[a+b]

3.3 test判断

  • test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试

3.4 [] 条件判断

  • 类似于test判断
  • [ "判断语句" ]; 注意中括号与其内容要有空格分开
  • 中括号中只能判断"==“或者”!="
  • 中括号中的字符串和变量需要加双引号,加双引号的目的时为了让字符或这变量作为一个整体,不然对于如a b这样的字符串会只识别前面的a,而后面的内容认定为多于变量。

3.5 if then else

  • 语法类似c语言ifelse
    if [ ”条件判断语句“ ]; then
    	(执行语句)
    else (或者elif [ ”条件判断语句“ ]; then)
    	(执行语句)
    fi
    

3.6 case

  • 语法类似c语言switch case

    case $变量名 in
    	"第一个变量内容")
    		(执行语句)
    	;;		
    	*)		#第二个变量内容
    		(执行语句)
    	;;			#代码段结束标志
    	.
    	.
    	.
    	esac
    
  • 不同的值右边有单个右括号,双分号表示语句结束

  • 值可以使用*(通配符表示其余所有类型),加""表示“*”字符

3.7 && and ||

  • &&: 左值成立时执行右值,否则不执行右值

  • ||:左值成立时不执行右值,左值不成立时执行右值

    a && b #a成立就执行b
    a || b #a成立就不执行b,与&&相反
    

3.8 脚本参数

  • 使用格式$"数字"表示shell脚本的参数
  • $0 表示运行脚本指令本身“./脚本名.sh”
  • $# 表示最后一个参数的标号,也可以用来表示参数个数
  • $@ 表示所有的参数

3.9 函数

  • 函数的声明定义类似于c,但函数只有以个类型:function

    function 函数名(){
    	//函数代码段
    }
    
  • 函数的调用只需要写函数名,无参数需要写空括号;如果有参数,也不要括号,用空格隔开参数和函数名即可

    exampleFunction a b
    

3.10 循环

  • while 循环,条件成立进入循环体

    while [判断条件成立]
    do
    	(循环体)
    done
    
  • until循环,条件成立进入循环体,与while相反,结构基本与while相同

    until [判断条件不成立]
    do
    	(循环体)
    done
    
  • for循环

    • 第1中:不同于c中for循环,每次变量等于一个值,然后执行循环体,直至没有值循环停止
    for 变量 in 值1 值2 值3 ......
    do
    	循环体
    done 
    
    • 第2种:类似于c中for循环,括号时双括号。这里的限制值如果时变量可以不用$和双引号修饰,只是变量名也可以,但是要是整数
    for ((初始值;限制;步长))
    do
    	循环体
    done 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值