①.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

posted @ 2021-05-22 10:10  老夫聊发少年狂88  阅读(46)  评论(0编辑  收藏  举报