2019-08-31-bash变量设置

  1. Bash变量

Bash变量

categories: Linux

  1. 变量的命名和赋值

     # name1=Vbird # 等号周围没有空格
     # name2=$name1 # name2内容为Vbird
     # name2="$name1" # name2内容为Vbird, 双引号可以引用变量内容
     # name2='$name1' # name2内容为$name1
     # name2="$name1"yes # name2内容为Vbirdyes
     # name3=`ls` # 使用重音符号``可调用命令的返回值, name3的内容位ls显示的东西
     # echo $name3 # 查看name3的内容, 注意$符号
     # echo $? # ?的值代表上一条命令的返回值, 如果上一条命令没有错误, 返回值通常为0
     # export name3 # 让name3变为环境变量, 可以在子进程中访问
     # export # 查看所有环境变量
     # env # 查看所有环境变量
     # set # 查看所有变量
  2. 读取变量, 数组, 声明

    • read -p "接提示字符" -t 等待输入最长时间 var_name: 将输入的字符传递给var_name

    • declare [-axir] variable: 将variable定义为不同的类型:

      • -a: 数组
      • -i: 整数
      • -x: 环境变量
      • -r: readonly
      # declare -i sum=100+200
      # echo $sum # 输出300
    • 数组

      • var[1]=aaa: 定义数组
      • echo ${var[1]}: 显示数组
  3. 匹配替换删除并输出

    • echo ${var##expr}: 从var开头匹配expr表达式, 并且删除匹配到的部分(var内容没有改变), 输出剩下的. 贪婪匹配.
    • echo ${var#expr}: 开头, 非贪婪匹配.
    • echo ${var%%expr}: 结尾, 贪婪匹配.
    • echo ${var%expr}: 结尾, 非贪婪匹配.
    • echo ${var//text/sub}: 在var中, 取代textsub, 匹配到的全部取代.
    • echo ${var/text/sub}: 仅取待第一个.
  4. 根据str的内容设置var

    • var=${str-newvar}: 如果str存在, var=$str, 如果不存在, var="newvar"
    • var=${str=newvar}: 如果str存在, 设置var=$str, 如果str不存在, 就设置str="newvar", var="newvar"
    • var=${str?novar}: 如果str存在, var=$str, 如果不存在, 报错novar
  5. history

    • history 3: 查看3条历史命令
    • history -c: 清除history
    • history -w: 保存history到histfiles
    • history -r: 从historyfiles读取history
    • !23: 执行history编号23的命令
    • !expr: 从history列表中的命令, 从下至上, 开头匹配expr, 直到第一个匹配成功, 执行这条命令
    • !!: 执行上一条命令

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tianyilt@qq.com

文章标题:2019-08-31-bash变量设置

本文作者:tianyilt

发布时间:2019-12-07, 23:40:55

最后更新:2019-12-10, 08:53:01

原始链接:http://yoursite.com/2019/12/07/Linux/2019-08-31-bash%E5%8F%98%E9%87%8F%E8%AE%BE%E7%BD%AE/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏