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 查看本文章