为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
shell编程之变量_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

shell编程之变量

Tony Linux系统工程师
难度初级
时长 1小时51分
  • 环境变量:

    locale

    查看全部
    0 采集 收起 来源:bash语系变量

    2018-12-30

  • 预定义变量: 

    1、$?:最后一次执行的命令的返回状态。 

    如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。 

    2、$$:当前进程的进程号(PID)。 

    3、$!:后台最后一个运行的进程的进程号(PID)。 

    执行命令后在后面加一个& ,可以在后台进行 执行完一条命令之后,立马敲入echo $?,可得到返回值。例如:ls 执行之后,再敲入echo $?,可以得到0  

    接收键盘输入 

    read [选项] [变量名] 

    选项: 

    -p "提示信息":在等待read输入时,输出提示信息 

    -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间 

    -n 字符数:read命令只接受指定的字符数,就会执行 

    -s:隐藏输入的数据,适用于机密信息的输入

    read.sh: 

    #!/bin/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 

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

    echo $sex

    查看全部
    0 采集 收起 来源:预定义变量

    2018-12-21

  • 1、位置参数变量 

    $n:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10}。 

    $*:这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体。 

    $@:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待。 

    $#:这个变量代表命令行中所有参数的个数。  

    2、例子1: 

    #!/bin/bash 

    num1=$1 

    num2=$2 

    sum=$(($num1+$num2)) 

     #变量 sum 的和是 num1 加 num2 

    echo $sum 

     #打印变量 sum 的值 

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

    3、例子2 

    #!/bin/bash 

    echo "A total of $# parameters" 

    #使用 $# 代表所有参数的个数 

    echo "The parameters is:$*" 

    #使用 $* 代表所有的参数 

    echo "The parameters is:$@" 

    #使用 $@ 代表所有的参数 

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

    4、例子3:$* 与 $@ 的区别 

    #!/bin/bash 

    for i in "$*" 

    # $* 中所有参数看成是一个整体,所以这个 for 循环只会循环一次 

    do

        echo "The parameters is:$i" 

    done 

     for y in "$@" 

    # $@ 中每个参数都看成是独立的,所以 $@ 中有几个参数,就会循环几次 

    do

        echo "Parameter:$y" 

    done

    查看全部
    0 采集 收起 来源:位置参数变量

    2018-12-20

  • 当前语系查询:locale  //直接生效的是LANG变量(默认语系)  LC_ALL:定义整体语系(不常用) 

    echo $LANG    //当前语系环境 

    echo $LC_ALL  //整体语系环境 

    locale -a | more 查看Linux支持的所有语系环境 

    cat /etc/sysconfig/i18n  centos7 cat /etc/locale.conf  //下次开机以后的系统环境

    LANG=zh_CN.UTF-8 //切换成中文

    查看全部
    0 采集 收起 来源:bash语系变量

    2018-12-20

  • 1、环境变量与用户自定义变量的区别 

    环境变量是全局变量,用户自定义变量是局部变量。 

    用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效。 

    用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的。

    2、用户自定义环境变量 

    $ export 变量名=变量值 或 $ 变量名=变量值 $ export 变量名

    3、查看环境变量 

    $ set 查看所有变量 

    $ env 查看环境变量 

    4、删除环境变量 

    $ unset 环境名  

    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 用户为"#",普通用户为"$"

    查看全部
    0 采集 收起 来源:bash环境变量

    2018-12-20

  • 1、变量=值 e.g. x=5 注意,变量名只能是字母、下划线、数字组成且不能以数字开头,=号左右不可有空格

    2、""会解析特殊符号,例如$,''不会解析特殊符号 

    3、引用变量:$变量名  例如:$x 

    4、所有变量默认的值都是字符串类型,不可做Math运算 

    5、变量叠加 e.g  y="$x"123  或者 y=${x}123 

    6、查看变量 set 会列出系统中所有的变量,包括环境变量和自定义变量   set -u //设定当调用不存在变量时,会提示错误 

    7、删除变量 unset 变量名 例如:unset x

    查看全部
  • 变量命名规则 

    开头为字符或下划线,名字中间中能有字母、数字和下划线组成; 

    变量的长度不超过255个字符; 

    变量名在有效的范围内必须是唯一的;  //如再次定义则会替换上一个变量的值 

    在Bash中,变量的默认类型都是字符串型.  //即系统把所有值都当作字符串放到变量中,不论这个“字符串”实际上是整数、浮点数等等

    变量的分类

    用户自定义变量

    环境变量

    位置参数变量  //实际就是预定义变量

    预定义变量

    查看全部
  • 变量只能是字母下划线开头,不能是数字开头。

    变量只能有字母,数字,下划线组成。

    查看全部
  • locale支持的语系 $LANG 当前支持的语系$LANG 默认支持的语系 支持的所有语系
    查看全部
    0 采集 收起 来源:位置参数变量

    2018-11-26

  • 环境变量,包含系统环境变量和自定义环境变量 系统环境变量,是操作系统,所使用的变量 注PS1 PATH
    查看全部
    0 采集 收起 来源:bash语系变量

    2018-11-26

  • 接收键盘输入

    查看全部
    0 采集 收起 来源:预定义变量

    2018-11-23

  • 预定义变量

    查看全部
    0 采集 收起 来源:预定义变量

    2018-11-23

  • $*  与 $@  的区别

    查看全部
    0 采集 收起 来源:位置参数变量

    2018-11-23

  • 位置参数变量

    查看全部
    0 采集 收起 来源:位置参数变量

    2018-11-23

  • Linux中文支持

    查看全部
    0 采集 收起 来源:bash语系变量

    2018-11-23

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程需要具备Linux基础知识,请大家学习完《Linux达人养成计划I》之后学习。
老师告诉你能学到什么?
能够熟练使用shell中的用户自定义变量、环境变量、语系变量、位置参数变量和预定义变量。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!