博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell - 简明Shell入门02 - 变量(Variable)
阅读量:6705 次
发布时间:2019-06-25

本文共 1926 字,大约阅读时间需要 6 分钟。

示例脚本及注释

#!/bin/bashv1=test-variable_123 # 全局变量v2=12345v3='This is a test!' # 赋值语句使用单引号或双引号可以包含空格v4="Test again!"testfun(){local v5=67890 # 局部变量echo "局部变量:" $v5}echo $v1 # “$
<变量名>
”方式使用变量echo $v2echo $v3echo ${v4}v4 # “${
<变量名>
}”方式使用变量,使用{}可以帮助解释器识别变量边界testfun #调用自定义函数v6="run unset sample"echo "取消变量之前:" $v6unset v6 # 取消自定义变量 echo "取消变量之后:" $v6echo '$(命令): ' $(date) # 返回命令执行后所输出的结果echo '$((算术表达式)): ' $((20+3*3)) # 返回双括号内算术运算的结果echo "双引号括起来的变量:$v3"echo '单引号括起来的变量:$v3'# ### 变量(Variable)# - Shell变量只有字符串类型。# - Shell变量名称与变量值没有长度限制。# - 利用系统已定义的环境变量(特殊变量和环境变量),可以简洁高效地获取特定信息。# # ### 变量分类# - 自定义变量# - 特殊变量# - 环境变量# # # ### 自定义变量类型# - 局部变量:使用local修饰符,代码块或函数内可见。# - 全局变量:不适用任何修饰符,全局范围可见。# - 只读变量: 使用readonly命令来修饰,变量的值不能被改变。# # # ### 自定义变量# 定义形式:
<变量名>
=
<赋值语句>
# 注意:# - “=”两边不能加空格;如果赋值语句包含空格时,必须使用单引号或双引号。# - 使用readonly命令来修饰的自定义变量,变量的值不能被改变。# - 已定义赋值的变量,可以被重新定义赋值;# 变量名规则:# - 首个字符必须为字母(a-z,A-Z)。# - 中间不能有空格,可以使用下划线(_)。# - 不能使用标点符号。# - 不能使用bash里的关键字(可用help命令查看保留关键字)。# 生命周期:# - 定义的变量只存在于Shell脚本运行期间,脚本结束后,变量也就自动消失。# - 可以通过export命令将定义的变量共享给同一个shell的其他程序使用。# - 如果想让自定义变量永久生效,需要修改配置文件(对所有用户生效的/etc/profile文件,或者,对单一用户生效的用户目录下的.bash_profile文件)。# # # ### 取消自定义变量# 取消形式:unset
<变量名>
# # # ### 常用特殊变量# $0 当前shell脚本的名称# $n 当前shell脚本的第n个参数,$1是第一个参数,$2是第二个参数,${10}是第十个参数# $* 当前shell脚本的所有参数(不包括脚本本身)# $# 当前shell脚本的参数个数(不包括脚本本身)# $$ 当前shell脚本的PID# $? 上一个指令的返回值# # $(命令) 返回命令执行后所输出的结果# $((算术表达式)) 返回双括号内算术运算的结果# # # ### 常用环境变量# - 使用env或export命令获取当前常用的环境变量。# - 使用“set |grep ^[a-Z] |grep [=]”命令显示当前所有变量(包括自定义变量和环境变量)。# # # ### 使用变量# 使用形式:$
<变量名>
# 或者,${
<变量名>
},使用{}可以帮助解释器识别变量边界,非必须但推荐。# # # ### 特别注意# - 双引号:可以有变量(会发生变量替换);可以出现转义字符;可以嵌套双引号;# - 单引号:原样输出任何字符;不会发生变量替换;不能嵌套单引号;# - 反引号:位于键盘的Tab键的上方、数字1键的左方,具备命令替换的作用;

转载于:https://www.cnblogs.com/anliven/p/7360626.html

你可能感兴趣的文章
BZOJ 1396&&2865 识别子串[后缀自动机 线段树]
查看>>
java集合框架05——ArrayList和LinkedList的区别
查看>>
Kubernetes如何支持有状态服务的部署?
查看>>
vue学习笔记1-基本知识
查看>>
C#开发step步骤条控件
查看>>
text-align 属性,输入框数字向右靠
查看>>
算法笔记_069:Floyd算法简单介绍(Java)
查看>>
dubbo常见错误
查看>>
java-信息安全(十四)-初探SSL
查看>>
ElasticSearch 应用场景
查看>>
关于haproxy负载均衡的算法整理
查看>>
微信小程序,创业新选择
查看>>
洛谷4月月赛R2
查看>>
FastJson和Gson和Json数据解析分析和用法
查看>>
算法笔记_186:历届试题 高僧斗法(Java)
查看>>
new BigDecimal(0.01) 与 new BigDecimal(String.valueOf(0.01))的区别 (转)
查看>>
软件测试的四个阶段
查看>>
Java基础八--构造函数
查看>>
【Cloud Foundry】Could Foundry学习(一)——Could Foundry浅谈
查看>>
CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
查看>>