• Shell编程 之 变量


    1. 概述

      Shell与其他语言的对比:php和java主要实现功能,Shell简化管理操作

    2. Bash变量与变量分类(Bash是Linux的Shell)

      2.1 什么是变量与变量分类

        2.1.1 变量是计算机内存的单元,其中存放的值可以改变

        2.1.2 变量命名规则

          - 开头只能字母或下划线,中间为字母、数字和下划线

          - 长度不能超过255个字符

          - 在有效的范围内必须是唯一的

          - 在Bash中,变量的默认类型都是字符串

        2.1.3 变量按照存储数据分类:字符串型,整型,浮点型,日期型

        2.1.4 变量的分类:

          - 用户自定义变量

          - 环境变量

          - 预定义变量(包括位置参数变量)

    3. 用户自定义变量(是局部变量)

      3.1 变量定义:变量名=变量值(等号左右不能有空格),例如:x=5 或 name="wayne"

      3.2 变量调用:$变量名,例如:echo $x 或 echo $name

      3.3 变量叠加:x="$x"456  # 在x后叠加456

      3.4 变量查看:set查看所有变量  tips:set -u后查看变量为空还是变量不存在

      3.5 变量删除:unset 变量名

    4. 环境变量(是全局变量)

      bash命令进入子shell,exit命令退出到父shell,pstree查看进程

      对系统生效的环境变量名和变量作用是固定的

      设置环境变量:export 变量名=变量值

      查看环境变量:set  # 查看所有变量    env # 查看环境变量

      调用和删除:echo $变量名  和  unset 变量名

      常用环境变量:

        

      PATH环境变量:系统查找命令的路径

        echo $PATH  # 查看PATH环境变量

        PATH="$PATH":/root/sh  # 增加PATH变量的值 (临时添加)

       PS1环境变量:命令提示符设置(默认为PS1='[u@h W]$ ')

        

    5. 环境变量中的 语系变量

      5.1 locale  # 查询当前系统语系

        - LANG:定义系统主语系的变量

        - LC_ALL:定义整体语系的变量

       5.2 语系变量LANG

        - echo $LANG  # 查看系统当前语系

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

       5.3 查询系统默认语系

        - cat /etc/sysconfig/i18n

      5.4 Linux中文支持 - 纯字符界面不支持中文显示

    6. 位置参数变量

      

      6.1 $n  向脚本中传递需要脚本运算的值

        [root@localhost sh]# ./para.sh 1 2

    #!/bin/bash
    
    sum1=$((10+20))
    echo $sum1
    
    num1=$1
    num2=$2
    
    sum2=$(($num1+$num2))
    
    echo $sum2
    ~                                                                          
    ~                                                                          
    ~                                                                                                                                                 
    "para.sh" 11L, 92C 
    

      6.2 $* 和 $@ 和 $#

    #!/bin/bash
    
    echo "$* is: $*"
    
    echo "$@ is: $@"
    
    echo "$# is: $#"
    ~                                                                          
    ~                                                                          
    ~                                                                                                                                                 
    "para2.sh" 7L, 69C     

        

    #!/bin/bash
    
    for x in "$*"
            do
                    echo "$* is: $x"
            done
    
    for y in "$@"
            do
                    echo "$@ is: $y"
            done
    ~                                                                          
    ~                                                                          
    ~                                                                                                                                                   
    "para3.sh" 11L, 102C
    

        

    7. 预定义变量

       

      7.1 $?  上一条命令正确执行,则这个变量的值为0

        

      7.2 $$  和 $!

    #!/bin/bash
    
    echo "$$ is current PID: $$"  # 当前进程ID号
    
    find / -name hello.sh &  # 最后的&符号表示在后台运行
    echo "$! is the last PID in background: $!"  # 后台最后一个进程ID号
    ~                                                                          
    ~                                                                          
    ~                                                                                                                                                    
    "process.sh" 6L, 113C
    

        

    8. 接收键盘输入  read  选项  变量名

       

    #!/bin/bash
    
    read -p "input your name: " -t 30 name  # 秒数
    echo $name
    
    read -p "input your password: " -s password  # 隐藏
    echo
    echo $password
    
    read -p "input your gender: [M/F]" -n 1 sex  # 字符数
    echo
    echo $sex
    ~                                                                          
    ~                                                                          
    ~                                                                                                                                                   
    "read.sh" 12L, 188C
    

      

      

  • 相关阅读:
    简单批处理内部命令简介(转)
    CPU 内存 频率 DDR DDR2 DDR3
    python 正则表达式
    bat 脚本 > >> 管道
    python 多进程 无数进程 重复进程 死机
    NLP相关期刊和会议
    deamon tools dtsoft virtual cdrom device 失败 错误
    占位
    2011年07月03日的日记
    每周总结(第二周)
  • 原文地址:https://www.cnblogs.com/wnzhong/p/6383927.html
Copyright © 2020-2023  润新知