系统相关
首页 > 系统相关> > bash shell 学习日记(6)特殊字符(五)之美元符号$

bash shell 学习日记(6)特殊字符(五)之美元符号$

作者:互联网

目录

美元符号

$在bash中的用途

----------------------------------------------------------------------------------------------------------------------------------

美元符号-----$

$在bash中用途

  1.1 变量替换:变量的名字就是保存变量的地方,引用变量的值就叫做变量替换。

   ex:

variable1=123

echo variable1
variable1

echo $variable1 
123
  
echo ${variable1} 
123

    注意:在下列情况下,变量名没有前缀$

     在引用时,$的变化:

      双引号,弱引用,发生变量替换。单引号,强引用,保持字面意思。

1.2正则表达式中行结束符

     正则表达式处理字符串的一种强大的工具,具有自己的语法结构。大致过程:把设定的表达式和要比较的字符串进行比较,如果文本中字符串和表达式每个字符都匹配,说明匹配成功,若其中有一个不匹配的字符,说明匹配失败。

     $在正则表达式中表示行结束符,例:

     "abc$" 匹配行尾的abc

    "^$" 匹配空行

1.3 参数替代 ${ }

   前言:在上节? 中

  

 

 参数替换方法(二)

    如果变量未被声名或赋值,那么就替换为默认值 (三元结构)

   ${ parameter-default}  判断变量是否被声名,没赋值指定默认值为default

   ${parameter : -default}  判断是否被赋值,没有赋值指定default值给变量

例1:

echo ${ username- `whoami` }  判断username是否被声名

例2:

DEFAULT_FILENAME=generic.data

filename=${1:-$DEFAULT_FILENAME

脚本逻辑 :判断变量是否被声名or被赋值

  1 #!/bin/bash
  2 #variable.sh
  3 # 一个变量是否被声明或设置,将会影响变量是否使用默认值
  4 # 情况1:没有声明,直接使用
  5 echo "username1 has not declared."
  6 echo "Test1A: username1 = ${username1-`whoami`}" #有输出
  7 echo "Test1A: username1 = ${username1:-`whoami`}" #有输出
  8 echo
  9 #情况2:声明了变量,但变量值为空null
 10 username2=
 11 echo "username2 has been declared,but is set ton null."
 12 echo "Test2B: username2 = ${username2-`whoami`}" #无输出
 13 echo "Test2B: username2 = ${username2:-`whoami`}" #有输出
 14 #有输出,因为:-会比-多了一个测试条件

1.4 引用字符串扩展  '  ... '(了解即可)

quote=$'\042'   42八进制 转义到字符为“

echo $quote

  "

1.5 位置参数

 

 1.6  退出代码 $? 

保持一个命令、一个脚本、一个函数的退出的状态代码

1.7 进程ID变量

保存当前运行脚本进程的ID

标签:username1,username2,变量,variable1,echo,shell,bash,whoami,特殊字符
来源: https://www.cnblogs.com/liu-gc/p/16356669.html