• ①.shell变量


    1.用户自定义变量 只能在当前shell生效

    1. 赋值 有空格框起来
      var='hello word'
      var="hello word"
    2. 显示 拼接的时候用{}
    echo $var
    hello word
    echo $var_log
    hello word_log
    

    2.系统变量

    1)打印系统所有的变量

    [root@rstx-53 ~]# export
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    
    1. export 把自定义变量转变为当前窗口的环境变量
    [root@rstx-53 ~]# sh -x test.sh 
    + echo
    
    [root@rstx-53 ~]# export var='hello word'
    [root@rstx-53 ~]# sh -x test.sh 
    + echo hello word
    hello word
    

    3.变量参数的特殊用法

    [root@rstx-53 ~]# cat test.sh 
    #!/bin/bash
    echo "The name of the script     $0"    #执行脚本的名称
    echo "one                        $1"    #第一个参数
    echo "two                        $2"    #第二个参数
    echo "three                      $3"    #第三个参数
    echo "parameter all              $*"    #显示全部参数   “$*”后 所有参数当做一个整体
    echo "parameter all              $@"    #显示全部参数   "$@"后 所有参数不会当做一个整体 当做一个字符串依次返回
    echo "parameter num              $#"    #显示参数的个数
    echo "pid       num              $$"    #显示执行脚本的pid
    echo "Command Execution Result   $?"    #显示命令的执行结果
    
    
    
    
    
    [root@rstx-53 ~]# sh test.sh 1 2 3 4 5 6
    The name of the script     test.sh
    one                        1
    two                        2
    three                      3
    parameter all              1 2 3 4 5 6
    parameter all              1 2 3 4 5 6
    parameter num              6
    pid       num              30428
    Command Execution Result   0
    

    4.交互式传递变量

    1)read

    [root@rstx-53 ~]# cat read.sh 
    #!/bin/bash
    read -p "please input vars: "  read_vars
    echo " vars is $read_vars"
    [root@rstx-53 ~]# sh read.sh 
    please input vars: 1
     vars is 1
    

    通过read交互式输入ip 检测ip是否在线

    [root@localhost ~]# cat check_ip.sh 
    #!/bin/bash
    read -p "Please Input Ip: " Ip
    ping -c 2 $Ip >/dev/null
    if [ $? = 0 ];then
      echo "$Ip is alived"
    else 
       echo "$Ip is failed"
    fi
    

    变量替换切片

    定义变量

    [root@localhost ~]# vars=www.baidu.com.cn
    [root@localhost ~]# echo $vars
    www.baidu.com.cn
    

    1)${vars#匹配规则} PS:从头开始匹配 最短删除

    [root@localhost ~]# echo ${vars#*.}
    baidu.com.cn
    

    2)${vars##匹配规则} PS:从头开始匹配最长删除

    [root@localhost ~]# echo ${vars##*.}
    cn
    

    3)${vars%匹配规则} PS: 从尾开始匹配最短删除

    [root@localhost ~]# echo ${vars%.*}
    www.baidu.com
    

    4)${vars%%匹配规则} PS:从尾开始匹配最长删除

    [root@localhost ~]# echo ${vars%%.*}
    www
    

    5)${vars/旧字符串/新字符串} PS:替换变量内的旧字符串为新字符串 只替换第一个

    [root@localhost ~]# echo ${vars/c/a}
    www.baidu.aom.cn
    

    6)${vars//旧字符串/新字符串} PS:替换变量内的旧字符串为新字符串 全部替换

    [root@localhost ~]# echo ${vars//c/a}
    www.baidu.aom.an
    

  • 相关阅读:
    增量式爬虫 Scrapy-Rredis 详解及案例
    scrapy-redis使用以及剖析
    为什么代码要写到匿名自执行函数中?
    Vue组件第三天--webpack
    Vue组价通信
    Vue组件第一天
    pip3 install pycryptohome
    selenium 安装与 chromedriver安装
    解决:'chromedriver' executable needs to be in PATH问题
    如何在VS Code中编写Python
  • 原文地址:https://www.cnblogs.com/yangtao416/p/14794493.html
Copyright © 2020-2023  润新知