Linux 初识shell脚本

    xiaoxiao2022-07-12  134

    文章目录

    1.脚本编程shell2.常用的脚本关键字3.变量类型3.1.用户自定义变量3.2.预定义变量3.3. 环境变量 4.unset 删除变量4.1.运算符号4.2.整数比较 5.常见运算6.数组

    1.脚本编程shell

    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) 运行流程 chmod +x ./test.sh sh ./test.sh ./test.sh

    2.常用的脚本关键字

    echo打印文字到屏幕exec执行另一个 Shell 脚本read读标准输入expr对整数型变量进行算术运算test用于测试变量是否相等、 是否为空、文件类型等exit退出

    脚本例子流程

    >su - hr >vi test.sh //脚本文件后缀 .sh #!/bin/bash // #!是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell echo “hello world !” >chmod +x test.sh >sh ./test.sh >hello world !

    调用变量

    $变量申明符号

    3.变量类型

    3.1.用户自定义变量

    >vi custom_r.sh #!/bin/bash name=dd echo $name readonly name name=xx >echo $name

    3.2.预定义变量

    $0脚本文件名$1-9第 1-9 个命令行参数名$#命令行参数个数$@所有命令行参数$*所有命令行参数$?前一个命令的退出状态,可⽤于获取函数返回值$$执行的进程 ID

    vi predef.sh

    #!/bin/bash echo "print $" echo "\$0 = $0" echo "\$1 = $1" echo "\$2 = $2" echo "\$# = $#" echo "\$@ = $@" echo "\$* = $*" echo "\$$ = $$" echo "\$? = $?" >chmod +x predef.sh >./predef.sh 1 2 3 4 >./predef.sh a b c d

    3.3. 环境变量

    环境变量默认就存在,常用的有下面这几个:

    HOME用户主目录PATH系统环境变量 PATHTERM当前终端UID当前用户 IDPWD当前做目录,绝对路径 >vi test_env.sh #!/bin/bash echo "print env" echo $HOME echo $PATH echo $TERM echo $PWD echo $UID >chmod +x test_env.sh >sh test_env.sh

    4.unset 删除变量

    readonly 标记为只读变量 export 指定全局

    4.1.运算符号

    + - * /分别为 加、减、乘、除$ !AND、OR、NO

    4.2.整数比较

    eq 等于,:if [ “a&quot;−eq&quot; a&quot; -eq &quot;a"−eq"b” ] -ne 不等于,:if [ “a&quot;−ne&quot; a&quot; -ne &quot;a"−ne"b” ] -gt大于 ,:if [ “a&quot;−gt&quot; a&quot; -gt &quot;a"−gt"b” ] -ge 大于等于,:if [ “a&quot;−ge&quot; a&quot; -ge &quot;a"−ge"b” ] -lt 等于,:if [ “a&quot;−lt&quot; a&quot; -lt &quot;a"−lt"b” ] -le 小于等于,:if [ “a&quot;−le&quot; a&quot; -le &quot;a"−le"b” ] < 小于(需要双括号),:((“a&quot;&lt;&quot; a&quot; &lt; &quot;a"<"b”)) <= 小于等于(需要双括号),:((“a&quot;&lt;=&quot; a&quot; &lt;= &quot;a"<="b”)) > 大于(需要双括号),:((“a&quot;>&quot; a&quot; &gt; &quot;a">"b”)) >= 大于等于(需要双括号),:(("a">=" a" >= "a">="

    字符串比较

    = 等于,:if [ “a&quot;=&quot; a&quot; = &quot;a"="b” ] == 等于,:if [ “a&quot;==&quot; a&quot; == &quot;a"=="b” ],=等价

    5.常见运算

    m=$[ m + 1 ] m=expr $m + 1 # ` 字符包起来 expr 全局变量 let m=m+1 m=$(( m + 1 )) vi add_one.sh #!/bin/bash m=1 m=$[ m + 1 ] echo $m m=`expr $m + 1` echo $m let m=m+1 echo $m m=$(( m + 1 )) echo $m

    脚本例子

    #!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a=b" else echo "a!=b" fi read -t 30 -p "input :" x if [ $x == 5 ] then echo "x is 5" else echo "x is not 5" fi

    6.数组

    所谓数组,是有序的元素序列。 [name] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素

    x=1 echo $x days=([0]=Sun [1]=Mon [2]=Tue [3]=Wed [4]=Thu // 数组名字=[定义]=元素) [5]=Fri [6]=Sat) echo ${days[$x]} echo ${days[4]} echo ${days[5]}
    最新回复(0)