十分钟轻松学习系列: 2020-3-18_SHELL学习_变量

1. 什么是变量?

1)小时候一个家属院的亲邻,知道你是老谁家的小谁,举例: 你是老王家的小张,你本身叫李雷,但是大家知道你是老王家的小张,不知道你名字不要紧,所以映射关系如下: <老王家的小张>=李雷, 这个 <老王家的小张> 就是变量,变量值是李雷,找到了<老王家的小张>,自然就映射到李雷。

2. 规范:

a)一般情况变量名应该全部大写,而且应该定义在脚本最上方(shebang: #!/bin/bash下面)

   #Scripts_1:
   #!/bin/bash
   HANDSOME1="吴彦祖"   #变量为字符串
   HANDSOME2=$1        #变量为位置参数 
   # /*下方为函数体*/
  • b) shell脚本支持一些特殊字符,但是我说个规定,变量中规中矩,别整幺蛾子字符起变量名字,除了
    (1)下划线_
    (2)[A-Za-z0-9]其他字符一律不带
    (3)数字不能开头

  • 举例:

    • 正确变量: LEBRON_JAMES, KEVIN_DURANT ,但是要杜绝系统已有的变量名,例如HOSTNAME之类的就别取了;
    • 驼峰法则也可以: pathToSheet, getTheCorrectInfo 都是很专业的写法;
  • 禁止以下方式取名!!!:

    • 倾奇脑洞版变量: 特朗普是我孙子,龘靐齉鬱,123hahaha, ㄣ憂喐dě女孠╰☆ぷ, @#$%
    • 土鳖示例: 尽量符合英文原版,不要用拼音,例如什么 LIFANG,PINGFANG,MUBIAOWENJIAN,CHUANRUWENJIAN,太low

3. 如何使用变量:

变量是个代号,如何取到代号的值, 使用"$"

   #Scripts_2:
   #!/bin/bash
   HANDSOME1="吴彦祖"   
   HANDSOME2="ㄣ憂喐dě女孠╰☆ぷ"        
   echo $HANDSOME1
   echo $HANDSOME2
   # 脚本输出结果是: 吴彦祖 (换行) ㄣ憂喐dě女孠╰☆ぷ

4. 进阶:

变量的分界线:

我想做字符串拼接,使用 变量+“其他字符串的方式”

需求: 我是一个没节操的人,谁强我就喊谁NB,所以我需要一个脚本,来凸显我的粉丝价值,例如IG赢了我就喊IG牛逼,RNG赢了我就喊RNG牛逼

   #Scripts_3:
   #!/bin/bash
   TEAMNAME="IG"   
   echo "$TEAMNAMENB"
   echo "$TEAMNAME牛逼"
   #脚本输出结果是空串,因为计算机是傻子, <TEAMNAMENB> <TEAMNAME牛逼> 这两个变量是不存在,还输出个球?

正确下写法如下: ${TEAMNAME} 记住是花括号,花括号,花括号是确定变量的分界线!!!!!()和[]都是不支持$后分界的

 echo "${TEAMNAME}牛逼"  ==> IG牛逼

位置参数:

需求:你把变量定义固定了,我只能喊IG牛逼,其他队伍怎么办?

  # Scripts_4:
    #!/bin/bash
    TEAMNAME=$1          ##位置参数   
    echo "${TEAMNAME}NB" 
    #假设脚本名称叫做 nb.sh,我们在脚本存在位置参数的时候,要添加位置参数,$1就是脚本后跟的第一个参数,空格分开,依次类推,
    #./nb.sh IG ==> IGNB   或者 #./nb.sh RNG ==> RNGNB 

为什么使用变量:

a)垃圾桶,一个大接口,只需要改变传参,不需要我改动代码,接啥传啥;
b) 使代码简洁规范,你传一大堆复杂路径对于我没影响,我把这些路径扔进变量中,形成一个列表,还能遍历切片,代码只需要实现变量名取代列表。

扫描二维码关注公众号,回复: 10310166 查看本文章
发布了49 篇原创文章 · 获赞 18 · 访问量 3992

猜你喜欢

转载自blog.csdn.net/weixin_41047549/article/details/104943756