Shell脚本常用命令学习及简单小总结代码

在这里插入图片描述

🍎Shell是乜鬼

shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。shell既是一种命令语言,又是一种程序设计语言。

Linux中的shell种类众多:
Bourne Shell (/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell For Root(/sbin/sh)

运行shell脚本的常用方法

  • 作为解释器参数:bin/sh filename.sh
  • 作为可执行程序:./filename.sh
  • 使用命令执行:source filename.sh(文件只需要可读权限,这种方式,只运行文件中的sh指令,在进程中可能看到sh指令的运行,而.sh文件不在运行状态)

🍎Shell变量

🍇定义变量
  1. 定义变量时不加美元符号($)
  2. 变量名与等号之间不能存在空格
  3. 命名只能使用英文字母、数字和下划线,首个字符不能以数字开头
  4. 中间不能有空格,可以使用下划线(_)
  5. 不能使用标点符号
  6. 不能使用bash里关键字
🍇使用变量

使用一个定义好的变量,只要在变量名前面加美元符号($)即可,好习惯就是变量名前都加花括号

your_name="qinjx"
echo $your_name
echo ${your_name}

🍎Shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小

🍇定义数组

在shell中用括号来表示数组,数组元素用空格符号分隔开

array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
) 还
可以单独定义数组的各个分量:
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用连续的下标,而且下标的范围没有限制
🍇读取数组

读取数组元素值的一般格式为:${数组名[下标]}
可以使用@读取数组中所有元素

echo ${array_name[@]}

🍎Shell多行注释

:<<'
***
***
'

🍎Shell输入&&输出

🍇输入——read

使用read语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量

  • 如果只指定了一个变量,那么read会把所有的输入付给这个变量,直到遇到第一个文件结束符或回车
  • 指定多个变量时,输入用空格作为变量间的分隔符
  • 如果输入文本域过长,Shell将所有的超长部分赋予最后一个变量
🍇输出——echo

使用echo命令可以显示文本行或变量,或者把字符串输入到文件

  • \c:不换行
  • \f:进纸
  • \t:跳格
  • \n:换行
    Linux系统中,选项-n禁止echo命令输出后换行
    选项-e才能使转义符生效
    如果想把一个字符串输出到文件中,使用重定向符号>。
# >覆盖原有内容
echo "The log files have all been done"> myfile
# >>追加到文件末尾,不覆盖原有内容
echo "The log files have all been done">> myfile
引入引号,必须使用反斜杠\来使shell忽略他的含义
echo "\"/dev/rmt0"\"
输出:"/dev/rmt0"

🍎Shell函数

🍇函数

Shell中函数的定义与其他语言差不多,只是不需要指定类型,格式为

function(){
    ***
    return **
}

函数的使用也跟其他语言一样,定义好函数后,直接使用

function
  • 参数返回:可加return语句显示返回想要的返回值,不加则默认最后一行命令的输出作为返回值
🍇参数

调用函数时,可以向其传参数。

#!/bin/bash
test(){
        echo "第一个参数为:$1 "
        echo "第十个参数为:$10 "
        echo "第十个参数为:${10} "
        echo "参数总量:$# "
        echo "以一个字符串形式输出所有参数:$* "
}       

test 1 2 3 4 5 6 7 8 9 11 12

在这里插入图片描述

对于参数的详细说明

参数说明
$#传递到脚本或函数的参数个数
$*以一个单字符串显示所有向脚本传递的参数
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

🍎总结代码

#!/bin/bash

menu(){
    echo "==============="
    echo "     menu"
    echo "     1.add"
    echo "     2.sub"
    echo "     3.mul"
    echo "     4.div"
    echo "     0.exit"
    echo "==============="
}

add(){
    val=`expr $1 + $2`
    echo "$1 + $2 = $val"
}

sub(){
    val=`expr $1 - $2`
    echo "$1 - $2 = $val"
}

mul(){
    val=`expr $1 \* $2`
    echo "$1 * $2 = $val"
}

div(){
    val=`expr $1 / $2`
    echo "$1 / $2 = $val"
}

menu

echo -n "Please input a num to choose function: "

read num

case $num in
    1) echo "You choose function add"
        read -p 'please input num1 : ' a
        read -p 'please input num2 : ' b
        add $a $b
            ;;
    2) echo "You choose function sub"
        read -p 'please input num1 : ' a
        read -p 'please input num2 : ' b
        sub $a $b
            ;;
    3) echo "You choose function mul"
        read -p 'please input num1 : ' a
        read -p 'please input num2 : ' b
        mul $a $b
            ;;
    4) echo "You choose function div"
        read -p 'please input num1 : ' a
        read -p 'please input num2 : ' b
        div $a $b
            ;;
    0) echo "Exit"
        exit 1
            ;;
esac

实际效果
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ltd Pikashu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值