Shell-01-变量




变量

系统常用变量

#!/bin/bash
echo "默认shell: $SHELL"
echo "当前用户家目录: $HOME"
echo "内部字段分隔符: $IFS"
echo "默认语言: $LANG"
echo "默认可执行程序路径: $PATH"
echo "当前目录: $PWD"
echo "当前用户ID: $UID"
echo "当前用户:  $USER"
echo "历史命令大小: $HISTSIZE"
echo "随机生成一个0-32767的整数: $RANDOM"
echo "主机名称: $HOSTNAME"


#扩展知识
#修改历史命令记录条数大小
vim /etc/profile
HISTSIZE=10000
source /etc/profile


普通变量和临时环境变量

#变量等号两边不建议空格,不然会出问题
#普通变量定义      VAR=value
#临时环境变量定义   export VAR=value


#区别
#在当前shell进程中定义的环境变量,其作用域是当前的shell进程
#当用 export 命令导入到系统环境变量时,则作用域是shell进程以及shell的子进程

不使用export定义变量

image-20210805094836546


使用export定义变量

image-20210805095015165


注意:在执行脚本的时候,会在当前终端会生成一个子shell去执行脚本的命令,而不会直接去执行系统命令

image-20210805101122639



位置变量

位置变量是指的shell脚本或者函数后面跟的 $n 变量

$n 取值范围 $1 $2 $3 ... $9, 从第10个开始需要使用花括号调用 ${10}

image-20210805101420505


shift 命令
执行一次shift命令,位置变量个数就会减一,而变量值会提前一位
也可以理解丢弃当前位置的变量

image-20210805101454667

shift n 可移动n位

image-20210805101611980



特殊变量

$0  脚本自身名字
$?  上一条命令返回的状态码,0为成功,非0则执行失败
$#  位置参数总数
$*  所有的位置参数被看做成一个字符串
$@  所有的位置参数被看做成独立的字符串
$$  当前进程PID
$!  上一条后台运行的进程的PID

image-20210805101729606



变量的引用

=	  变量赋值
+=	两个变量相加(相当于字符串拼接)
    在Shell中所有的变量默认都是字符串型

image-20210805102410981

image-20210805102517050



单引号、双引号、反撇号

`......`
    反撇号等效于 $(......),相当于先执行命令,在把命令返回结果赋值

image-20210805102718711


单引号和双引号之间的差别
  单引号会忽略特殊字符
  
  双引号会解释特殊字符原有的意义 如 $ 、! 等

image-20210805103006247

image-20210805103022116


posted @ 2021-08-05 10:33  李成果  阅读(55)  评论(0编辑  收藏  举报