变量的作用:
为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
自定义变量:由用户自己定义、修改和使用
环境变量:由系统维护,用于设置工作环境
位置变量:通过命令行给脚本程序传递参数
预定义变量:Bash中内置的一类变量,不能直接修改
按变量使用的范围
局部变量:只在当前的shell中有效
全局变量:子shell会从父shell继承的变量
查看所有变量:
定义新的变量:
变量名要求以英文字母或下划线开头,不能以数字开头,区分大小写,约定俗成为大写,但不强制;等号两边不要空格。
格式:变量名=变量值
查看变量的值 : 格式: echo $变量名 (引用变量)
自定义变量:
如果变量名容易和后边的字目和下划线连在一起导致混淆,则应该使用大括号将变量名括起来
${变量名}
可以将命令的执行结果直接赋值给变量
var2=$( rpm -qf $(which fdisk) )
readonly可将变量设置为只读,变量一旦设置为只读,任何用户不能对此变量进行重新赋值
variable=value //先对一个变量进行赋值
readonly variable //将variable设为只读
利用unset命令可以清除变量的值 格式:unset 变量名
bash shell 在解释命令前替换某些命令行元字符
统配符替换: * ? [a-z]
历史命令替换: !! !n!str
代字号替换: ~~用户名
变量替换: $变量名${变量名}
大括号替换:{a,b,c}file{aa,bb}/{aa,bb}
算术替换:+-*/
引用和转义字符
使用特殊字符时,就是表示本身,不使用其特殊意义
:避免下一个字符被shell解释
$() 和 `` 的作用一样;但是$()可以嵌套;
反引号 ``:命令替换,提取命令执行后的输出结果
单引号、双引号、反引号的区别
shell替换发生在命令运行之前
单引号: 避免单引号内的任何字符被shell解释
str='this is a string'
单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号:避免双引号内除了$、!和`(反引号)以外的其它字符被shell解释
your_name='qinjx'
str="Hello, I know your are "$your_name"! "
双引号的优点:
双引号里可以有变量;;双引号里可以出现转义字符