您的位置:新葡亰496net > 电脑系统 > 新葡亰496netlinux下shell编程基础篇一,Shell脚本应

新葡亰496netlinux下shell编程基础篇一,Shell脚本应

发布时间:2019-11-24 07:17编辑:电脑系统浏览(131)

    前言:

    1.Shell脚本:命令解释器,介于系统内核与用户之间,负责解释命令行

    1.变量的分类;

    shell编程
    shell主要用来简化管理操作
    bash变量
    1.什么是变量
    变量是计算机内存的单元,其中存放的值可以改变。
    变量命名规则:字母或下划线开头,可由字母、数字和下划线组成。
    长度不能超过255个字符。变量名在有效范围内必须唯一。在bash中,变量的默认类型都是字符型。
    变量安装存储数据分类,字符串型、整型、浮点型、日期型
    变量在“系统内”分类:
    用户自定义变量。即:变量是自定义的。
    环境变量:主要保存和系统操作环境相关的数据。可自定义,但对系统生效的环境变量名和变量作用是固定的。
    位置参数变量:主要用来向脚本当中传递参数或数据。变量名不能自定义,变量作用是固定的。
    预定义变量:是bash中已定义好的变量,变量名不能自定义,变量作用固定的。

     

    大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗

    通过/etc/shells文件可以了解当前系统所支持的Shell脚本种类

    用户自定义变量:   变量自定义 默认存储是字符串
    环境变量:              这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
    位置参数变量:      这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
    预定义变量:          是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

    2.自定义变量
    格式:变量名=变量值 注:等号两侧不能有空格

    这是一篇shell的基础文章,主要内容是bash的作用,history作用,管道符,如何自定义变量

    本文整理自博主当年的学习笔记,若有疏漏欢迎指正!

    [root@crushlinux /]# cat /etc/shells 
    /bin/sh
    /bin/bash
    /sbin/nologin
    /bin/dash
    /bin/tcsh
    /bin/csh
    

    2.用户自定义变量

    • x=5 正确的定义
    • name = xxxx 错误的定义
      变量调用:
      echo $变量名
      如:echo $x
      echo $name
      注意:$x $y 不会做数值运算
      变量叠加:
      x=123
      x="$x"456 ->123456
      x=${x}789 ->123456789
      若执行 set -u 后,(前提是变量a不存在)echo $a ,则显示-bash: a: unbound variable
      变量删除:
      unset 变量名
      3.环境变量
      环境变量与用户自定义变量区别:
      环境变量是全局变量,用户自定义变量是局部变量。
      用户自定义变量只在当前的shell中生效,环境变量在当前shell和该shell的所有子shell中都生效。
      对系统生效的环境变量名和变量作用是固定的。
      设置环境变量
      export 变量名=变量值
      或:变量名=变量值 export 变量名
      查看环境变量
      set #查看所有变量
      env #查看环境变量
      删除环境变量 unset 变量名
      常用环境变量:
      HOSTNAME:主机名
      SHELL:当前的shell
      TERM:终端环境
      HISTSIZE:历史命令条数
      SSH_CLIENT:当前操作环境是用ssh连接的,这里记录客户端ip
      SSH_TTY:ssh连接的终端时pts/1
      USER:当前登录用户

    如何执行脚本等内容,下一篇会介绍一些如if,for,while,case等语句。欢迎各位与我交流。。。

    Shell编程规范与变量

    学习目标:

    掌握shell脚本编程规范

    掌握管道,重定向,变量

    目录结构:

     新葡亰496net 1

     

     

    2.用户的登录Shell

    1.定义变量
            格式:变量名称=变量值(=左右不能加空格)
     例如:
            x=5 就定义了一个叫 x 的变量
           注意 5 是字符,不是数字,不能加减乘除。
          name="hello world"

    PATH环境变量
    PATH变量:系统查找命令的路径
    echo $PATH #查看PATH环境变量
    PATH="$PAHT":/root/sh #增加PAHT变量的值
    PS1环境变量:命令提示符设置

    一、shell环境概述

    Shell脚本的概念

    1. 将要执行的命令按顺序保存到一个文本文件
    2. 给文件可执行权限,便可运行。
    3. 可以结合各种shell控制语句以便完成更复杂的操作
    4. 脚本文件一般以.sh结尾,执行脚本的命令是sh

     

    登录后默认使用的Shell程序,一般为 /bin/bash

    2.变量调用
       在变量名之前加一个 $表示变量的值
            例如:输出变量的值
               echo $x
               echo $name

    位置参数
    当前语系查询:
    locale # 查询当前系统语系
    -LANG :定义系统主语系的变量
    -LC_ALL:定义整体语系的变量

    1.Shell的作用及常见分类

    Shell脚本应用场景

    1. 重复性操作
    2. 批量事物处理
    3. 自动化运维
    4. 服务运行状态监控
    5. 定时任务执行
    6. ……

     

    不同Shell的内部指令、运行环境等会有所区别

    3.变量叠加
         x=123
         x="$x"456 或  x=${x}456

    echo $LANG #查看系统当前语系
    locale -a | more #查看Linux支持的所有语系
    cat /etc/sysconfig/i18n # 查询系统默认语系

    Shell的作用 —— 命令解释器,“翻译官”;介于操作系统内核与用户之间,负责解释命令行(类似于win下的cmd)

    Shell脚本的组成

    1、 脚本声明 #!/bin/bash一般是这样的

    2、 注释信息 以#开头注释脚本大概情况

    3、 可执行语句 就是指正文,命令的叠加

     

    3.编写脚本代码

    4.变量查看
          set 会显示当前系统中所有运行的变量
          set -u 如果设定此选项,调用未声明变量时会报错(默认无任何提示)

    linux中文支持,只有正确安装的中文字体和中文语系
    -如果有图形界面,可以正确支持中文显示。
    -如果使用第三方远程工具,只要语系设置正确,可以支持中文显示。
    -如果纯字符界面,必须使用第三方插件。

    1. Shell环境的切换

    编写shell脚本

    [root@poll ~]# vi a.sh   //编辑脚本文件,脚本文件一般都是以.sh结尾的

    #!/bin/bash   //声明这是·一个脚本

    #This is my first shell-script   //注释一般用来记录脚本的功能

    #2018-03-16   //注释 记录脚本时间

    cd /boot   //切换到/boot目录下

    echo "当前目录位于:"   //显示双引号内的内容

    pwd   //显示当前目录

    echo "其中以vml开头的文件包括:"   //显示双引号内的内容

    ls -lh vml*   //执行命令

     

    注意:有交互用read -p 没有用echo

    使用vi文本编辑器

    5.删除变量
         unset 变量名
         例如:unset name

    位置参数变量:
    $n 作用:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
    $* 作用:代表命令行中所有的参数,$*把所有的参数看成一个整体。
    $@ 作用:代表命令行中所有的参数,$@把每个参数区分对待
    $# 作用:代表命令行中所有参数的个数。
    例子:

    1). 临时切换:直接执行其他Shell程序,例如ksh、zsh等

    Shell脚本的执行方式

    1、 绝对路径

    2、 相对路径

    3、 sh脚本

    4、 source脚本

    每行一条Linux命令,按执行顺序依次编写

    3.bash环境变量

    !/bin/bash

    num1=$1
    num2=$2
    sum=$(($num1 $num2))#变量sum的和是num1 num2
    echo $sum # 打印变量sum的值
    ./canshu1.sh 11 22
    $0 $1 $2

    预定义变量
    $? 最后一次执行的命令的返回状态。若这个变量的值为0,证明上一个命令正确执行。反之,未正确执行。
    $$ 当前进程的进程号(PID)
    $! 后台运行的最后一个进程的进程号(PID)

    接收键盘输入
    read [选项] [变量名]
    选项:
    -p “提示信息”:在等待read输入时,输出提示信息。
    -t 秒数:read命令会一直等待用户输入,可指定等待时间。
    -n 字符数:read命令只接受指定的字符数,就会执行。
    -s:隐藏输入的数据,使用于机密信息的输入

    shell运算符
    declare 命令
    格式:declare [ /-] [选项] 变量名
    -:给变量设定类型属性
    :取消变量的类型属性
    -a:将变量声明为数组
    -i:将变量声明为整数型(integer)
    -x:将变量声明为环境变量
    -r:将变量声明为只读变量
    -p:显示指定变量的被声明的类型
    1、变量声明为数值型

    2). 更改用户登录Shell:

    shell脚本变量揭秘

    [root@crushlinux /]# vim first.sh
    cd /boot/
    pwd
    ls -lh vlm*
    添加可执行权限:
    [root@crushlinux /]# chmod  x first.sh
    

    1.环境变量与用户自定义变量的区别
             环境变量是全局变量,用户自定义变量是局部变量。
             用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效。
             用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的。

    给变量aa和bb赋值

    aa=11
    bb=22

    p 需修改/etc/passwd 文件中用户记录的最后一个字段

    变量概念与分类

    变量的概念:

    1、 变量用来存放系统或用户需要使用的特定参数或者值

    2、 变量的的值可以根据用户设定或者系统环境的变化面相应变化

    3、 在shell脚本中使用命令可以使脚本更加灵活,适应性更强

     

    变量的分类:

     自定义变量:由用户自己定义,修改和使用

     环境变量:由系统维护,用于设定系统环境

     位置变量:通过命令行给脚本程序传递参数

     预定义变量:bash中内置的一种变量,不能直接修改

     

    4.执行脚本文件

    2.用户自定义环境变量
             export 变量名=变量值

            变量名=变量值
            export 变量名

    声明变量cc的类型是整数型,它的值是aa和bb的和

    declare -i cc=$aa $bb

    2、声明数组变量

    p 或执行:usermod -s Shell程序路径 用户名

    变量的定义与输出

    定义一个新的变量

    格式:变量名=变量值

    变量名以字母或者下划线开头

    区分大小写

     

    赋值可使用引号

    双引号:允许通过$符号引用其他变量值

    单引号:禁止引用其他变量值,$视为普通字符

    反撇号``或$():命令替换,提取命令的执行结果

     

    输入输出

    输入格式:read [-p “提示信息”] 变量名

    输出格式:echo $变量名

     

    方法一:脚本文件路径

    3.查看环境变量
           set 查看所有变量
           env 查看环境变量

    定义数组

    movie[0]新葡亰496net,=aaa
    movie[1]=bbb
    declare -a movie[2]=ccc

    1. Bash的常用功能

    变量作用范围

    l  ’默认情况下,新定义的变量只在当前shell环境中有效,因此称为局部变量

    l  当进入子程序或新的子shell环境时,局部变量无法再使用

    l  为了使用户定义的变量在所有的子shell环境中能够继续使用,减少重复设置工作,可以通过内部命令export将制定的变量导出为“全局变量”

    格式1:export 变量名…

    格式2:export 变量名=变量值 …

    两种格式可以混合使用

     

    方法二:sh  脚本文件路径

    4.删除环境变量
          unset 环境名

    查看数组

    echo ${movie}
    echo ${movie[2]}
    echo ${movie[*]}

    3、声明环境变量
    declare -x test=123

    Tab键自动补齐 命令编辑快捷键 命令历史 命令别名

    变量的算术运算

    l  变量的数值运算多用于脚本程序的过程控制

    l  只能进行简单得整数运算,不支持小数运算

    l  整数值得运算主要通过内部命令expr进行

    l  格式

    expr 变量1 运算符 变量2 [运算符 变量3]

    l  :加法运算

    l  -:减法运算

    l  * :乘法运算,注意不能仅使用“*”符号,否则将被当成文件通配符

    l  /:除法运算

    l  %:求模运算,又称为取余运算,用来计算数值相除后的余数

     

    实例:

    [root@poll ~]# x=35

    [root@poll ~]# y=16

    [root@poll ~]# expr $x $y

    51

    [root@poll ~]# expr $x - $y

    19

    [root@poll ~]# expr $x * $y

    560

    [root@poll ~]# expr $x / $y

    2

    [root@poll ~]# expr $x % $y

     

    方法三:source  脚本文件路径    

    5.常用的环境变量
             HOSTNAME:主机名
             SHELL:当前的 shell
             TERM:终端环境
             HISTSIZE:历史命令条数
             SSH_CLIENT:当前操作环境是用 ssh 连接的,这里记录客户端 ip
             SSH_TTY:ssh 连接的终端是 pts/1
             USER:当前登录的用户
             PATH:系统搜索命令的路径
    要想直接通过脚本名执行自己的脚本:
    (1)将脚本拷贝至 PATH 中的任意目录下(不建议这样做),例如:
              cp hello.sh /bin/
    (2)将脚本所在目录添加到 PATH 变量中,例如:
              PATH="$PATH":/root/sh 但系统重启后失效(用的是变量叠加)
    PS1:命令提示符设置
          d:显示日期,格式为"星期 月 日"
          H:显示完整的主机名
          t:显示 24 小时制时间,格式为"HH:MM:SS"
          A:显示 24 小时制时间,格式为"HH:MM"
          u:显示当前用户名
          w:显示当前所在目录的完整名称
          W:显示当前所在目录的最后一个目录
          $:提示符。root 用户为"#",普通用户为"$"

    和export作用相识,但export其实是declare命令的作用

    4、声明变量只读属性
    declare -r test

    标准输入输出 重定向操作 管道操作

    预定义变量

    l  预定义变量是由bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值

    l  预定义变量使用“$”符号和另一个符号组合表示

    l  $*  $@

    保存了脚本要处理的所有参数

    l  $0

    保存了脚本的名称

    l  $?

    保存着命令或者脚本运行状态码,上一条命令运行成功结果显示0

    l  $#

    保存了脚本要处理的参数个数

    [root@crushlinux /]#./first.sh         必须有x权限
    [root@crushlinux /]#sh /first.sh
    [root@crushlinux /]#source /first.sh    不要求 x 权限
    

    6:语系变量

    给test赋予只读属性,但是请注意只读属性会让变量不能修改、不能删除,甚至不能取消只读属性

    5、查询变量的属性
    declare -p #查询所有变量的属性
    declare -p 变量名 #查询指定变量的属性

    数值运算方式
    方式1:declare形式
    方式2:

    1. Bash的命令历史

    位置变量

    l  为了在使用shell脚本程序时,方便通过命令行为程序提供操作数,bash引入了位置变量的概念

    l  位置变量有$0,$n,n为1~9之间的数字

    l  $0:第一个字段表示命令名或脚本程序名

    l  $1为脚本要处理的第一个参数,$2为第二个参数,……

    l  Shell脚本最多可以直接处理9个参数

     

    类型

        环境变量中的语系变量
        locale          #查询当前系统语系
        LANG        #定义系统主语系的变量
        LC_ALL #定义整体语系的变量
        echo $LANG #查看系统当前语系
        locale -a | more
       #查看Linux支持的所有语系

    给变量aa和bb赋值

    aa=11
    bb=22

    1) 命令历史

    环境变量

    l  环境变量指的是出于运行需要而由Linux系统提前创建的一类变量,主要用于设置用户的工作环境

    l  使用env命令可以查到当前工作环境下的环境变量

    l  PATH环境变量用于设置可执行程序的默认搜索路径

    l  环境变量的全局配置文件为/etc/profile,每个用户还有自己的独立的配置文件~/.bash_prpfile

     

     

    这是shell编程初步接触,后续发各种shell编程语句。下面有一个简单的脚本样例

    ------一个小计算器-----

     

    #!/bin/bash

    #this

     

    read -p "请输入第一个整数:" ONE

    read -p "请输入第二个整数:" TWO

    read -p "请输入运算符:" TH

    echo "$ONE$TH$TWO=$(($ONE $TH $TWO))"

     

     

    操作符

    查看默认语系
         cat /etc/sysconfig/i18n
    显示:
         LANG="zh_CN.UTF-8"
    #表示开机默认就是中文语系UTF-8编码

    dd的值是aa和bb的和,注意" "号左右两侧必须有空格

    dd=$(expr $aa $bb)
    方式3:“$((运算式))” 或 "$[运算式]"

     保存用户曾经执行过的命令操作

    用途

    4.位置参数变量

    给变量aa和bb赋值

    aa=11
    bb=22
    ff=$(($aa $bb))
    gg=$[$aa $bb]
    运算符说明:同编程语言运算符基本一致,有优先级,可通过小括号来改变。
    变量测试:特殊的形式,一般不用。如:x=${y-新值}

     存放位置:~/.bash_history 文件

    重定向输入

    1.位置参数变量
             $n:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10}。
             $*:这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体。
             $@:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待。
             $#:这个变量代表命令行中所有参数的个数。

    2) 查看历史命令history

    < 

    2.例子1:
     #!/bin/bash
         num1=$1
         num2=$2
         sum=$(($num1 $num2)) 
    #变量 sum 的和是 num1 加 num2
        echo $sum 
    #打印变量 sum 的值

    3) 调用历史命令

    从指定的文件读取数据,而不是从键盘输入

    执行脚本:
        ./test.sh   45 76

     !n:执行历史记录中的第n条命令

    重定向输出

    3.例子2
         #!/bin/bash
         echo "A total of $# parameters"
                                             #使用 $# 代表所有参数的个数
         echo "The parameters is:$*"
                                            #使用 $* 代表所有的参数
         echo "The parameters is:$@"
                                            #使用 $@ 代表所有的参数

     !str:执行历史记录中以“str”开头的命令

    > 

    执行脚本:
               ./test.sh 11 22 33 44

    4) 设置记录历史命令的条数/etc/profile

    将输出结果保存到指定的文件(覆盖原有内容)

    4.例子3:$* 与 $@ 的区别
    #!/bin/bash
    for i in "$*"
                             # $* 中所有参数看成是一个整体,所以这个 for 循环只会循环一次
    do
    echo "The parameters is:$i"
    done

     修改HISTSIZE 参数(默认为1000条)

    >> 

    for y in "$@"
                     # $@ 中每个参数都看成是独立的,所以 $@ 中有几个参数,就会循环几次
    do
    echo "Parameter:$y"
    done

    1. Bash的标准输入输出

    将输出结果追加到指定的文件

    5.预定义变量

    交互式硬件设备

    标准错误输出

    预定义变量:
      1.$?:最后一次执行的命令的返回状态。
         如果这个变量的值为0,证明上一个命令正确执行;

     标准输入:从该设备接收用户输入的数据

    2>

         如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
    2.$$:当前进程的进程号(PID)。
    3.$!:后台最后一个运行的进程的进程号(PID)。

     标准输出:通过该设备向用户输出数据

    将错误信息保存到指定的文件(覆盖原有内容)

    接收键盘输入:
        read [选项] [变量名]
        选项:
            -p "提示信息":在等待read输入时,输出提示信息
            -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
            -n 字符数:read命令只接受指定的字符数,就会执行
            -s:隐藏输入的数据,适用于机密信息的输入

     标准错误:通过该设备报告执行出错信息

    2>>

    read.sh:
    #!/bin/bash

    1. Bash的重定向操作

    将错误信息追加到指定的文件中

    read -p "please input your name:" -t 30 name
    echo $name

    改变标准输入、标准输出、标准错误的方向

    混合输出

    read -p "please input your passwd:" -s passwd
    echo -e "n"
    echo $passwd

    1. Bash的管道操作

    &>

    read -p "please input your sex [M/F]:" sex
    echo -e "n"
    echo $sex

    管道操作符号“|”

    将标准输出、标准错误的内容保存到同一个文件中

    连接左右两个命令,将左侧的命令输出的结果,作为右侧命令的输入(处理对象)

    5.管道操作符号“|”

    格式:cmd1 | cmd2 [... | cmdn]

    将左侧的命令输出结果,作为右侧命令的处理对象

    二.Shell变量的应用

    格式:cmd1  |  cmd2  [... | cmdn]

    Shell变量的种类

    [root@crushlinux ~]# rpm -qa |grep shell
    

     用户自定义变量:由用户自己定义、修改和使用

    6.变量:

     环境变量:由系统维护,用于设置用户的Shell工作环境,只有极少数的变量用户可以修改

    自定义变量:由用户自己定义、修改和使用

     预定义变量:Bash预定义的特殊变量,不能直接修改

    环境变量:由系统维护,用于设置工作环境

     位置变量:通过命令行给程序传递执行参数

    位置变量:通过命令行给脚本程序传递参数

    变量的赋值与引用

    预定义变量:Bash中内置的一类变量,不能直接修改

    1)定义新的变量

     

     变量名要以英文字母或下划线开头,区分大小写

    定义一个新的变量

     格式:变量名=变量值

    格式:变量名=变量值

    2)查看变量的值

    变量名以字母或下划线开头,区分大小写,建议全大写

     格式:echo $变量名

     

    3)从键盘输入内容为变量赋值

    查看变量的值

     格式:read [-p "信息"] 变量名

    格式:echo  $变量名

    4)结合不同的引号为变量赋值

    [root@crushlinux ~]# Prouduct=Benet
    [root@crushlinux ~]# Version=5.0
    [root@crushlinux ~]# echo $Prouduct 
    Benet
    [root@crushlinux ~]# echo $Prouduct $Version
    Benet 5.0
    

     双引号 “ ” :允许通过$符号引用其他变量值

    赋值时使用引号

     单引号 ‘ ’ :禁止引用其他变量值,$视为普通字符

    双引号:允许通过$符号引用其他变量值

     反撇号` ` :将命令执行的结果输出给变量

    单引号:禁止引用其他变量值,$视为普通字符

    5)设置变量的作用范围

    反撇号:命令替换,提取命令执行后的输出结果

     格式:export 变量名...

    从键盘输入内容为变量赋值

    export 变量

     格式: read  [-p  "提示信息"]  变量名

    6) 数值变量的运算

     

    计算整数表达式的运算结果

    设置变量的作用范围

     格式:expr 变量1 运算符 变量2 ...[运算符 变量n]

    格式1:export   变量名 ...

    expr的常用运算符

    格式2: export  变量名=变量值  ...

     加法运算:

    —— 两种格式可以混合使用

     减法运算:-

    [root@crushlinux /]#echo "$Product $Version" 
    Benet 5.0 
    [root@crushlinux /]#export Product  Version 
    [root@crushlinux /]#bash 
    [root@crushlinux /]#echo "$Product  $Version" 
    Benet  5.0 
    [root@crushlinux /]#exit
    

     乘法运算:*

    整数变量的运算

     除法运算:/

    格式:expr  变量1   运算符  变量2  [运算符 变量3] ...

     求模(取余)运算:%

     

    环境变量

    常用运算符

    1) 环境变量配置文件

    加法运算:

     全局配置文件:/etc/profile

    减法运算: -

     用户配置文件:~/.bash_profile

    乘法运算: *

    2) 查看环境变量

    除法运算: /

     set命令可以查看所有的Shell变量,其中包括环境变量

    求模(取余)运算: %

    常见的环境变量:path变量,类似于windows的path

    [root@crushlinux ~]# x=35
    

    三.Shell脚本的概念

    [root@crushlinux ~]# y=16

    1. Shell脚本

    [root@crushlinux ~]# expr $x $y

    a) 用途:完成特定的、较复杂的系统管理任务

    51

    b) 格式:集中保存多条Linux命令,普通文本文件

    [root@crushlinux ~]# expr $x - $y

    c) 执行方式:按照预设的顺序依次解释执行

    19

    1. 运行Shell脚本程序

    [root@crushlinux ~]# expr $x *新葡亰496netlinux下shell编程基础篇一,Shell脚本应用。 $y

    1) 直接执行具有“x”权限的脚本文件

    560

     例如:./repboot.sh

    [root@crushlinux ~]# expr $x / $y

    2) 使用指定的解释器程序执行脚本内容

    2

     例如:bash repboot.sh、sh repboot.sh

    [root@crushlinux ~]# expr $x % $y

    3) 通过source命令(或. )读取脚本内容执行

    3

     例如:souce repboot.sh 或. hello.sh

    7.特殊的shell变量

    如何执行脚本等内容,下一篇会介绍一些如if,for,wh...

     

    环境变量

    由系统提前创建,用来设置用户的工作环境

    配置文件: /etc/profile、~/.bash_profile

     

    位置变量

    表示为 $n,n为1~9之间的数字

     

    预定义变量

    $#:表示命令行中位置参数的个数

    $*:表示所有位置参数的内容

    $?:表示前一条命令执行后的返回状态

    $0:表示当前执行脚本或程序的名称

    实验部分

             要求:创建用户并设置密码

    [root@crushlinux ~]# vim yonghu.sh
    #!bin/bash
    read -p "请输入用户名" a
    useradd $a
    read -p "请输入密码" 
    passwd $a
    

    执行:

    [root@crushlinux ~]# sh yonghu.sh 
    请输入用户名aaa
    请输入密码123
    更改用户 aaa 的密码 。
    新的 密码:
    无效的密码: WAY 过短
    无效的密码: 过于简单
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
    

     

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496netlinux下shell编程基础篇一,Shell脚本应

    关键词:

上一篇:没有了

下一篇:没有了