示例脚本及注释


#!/bin/bash v1=test-variable_123 # 全局变量
v2=12345
v3='This is a test!' # 赋值语句使用单引号或双引号可以包含空格
v4="Test again!" testfun()
{
local v5=67890 # 局部变量
echo "局部变量:" $v5
} echo $v1 # “$<变量名>”方式使用变量
echo $v2
echo $v3
echo ${v4}v4 # “${<变量名>}”方式使用变量,使用{}可以帮助解释器识别变量边界 testfun #调用自定义函数 v6="run unset sample"
echo "取消变量之前:" $v6
unset v6 # 取消自定义变量
echo "取消变量之后:" $v6 echo '$(命令): ' $(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键的左方,具备命令替换的作用;

Linux - 简明Shell编程02 - 变量(Variable)的更多相关文章

  1. Linux学习——shell编程之变量

    shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...

  2. Shell - 简明Shell入门02 - 变量(Variable)

    示例脚本及注释 #!/bin/bash v1=test-variable_123 # 全局变量 v2=12345 v3='This is a test!' # 赋值语句使用单引号或双引号可以包含空格 ...

  3. Linux - 简明Shell编程13 - 用户输入(UserInput)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 1 - arguments #!/bin/bash i ...

  4. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

  5. Linux - 简明Shell编程03 - 字符串(String)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash str="Shell ...

  6. Linux - 简明Shell编程04 - 判断语句(If)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...

  7. Linux - 简明Shell编程07 - 数组(Array)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash test0=() # 定义数组 ...

  8. Linux - 简明Shell编程11 - 调用脚本(CallTheScript)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 主脚本: CallTheScript.sh #!/bi ...

  9. Linux - 简明Shell编程12 - 定制输出(ColorOutput)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo -e "\ ...

随机推荐

  1. keyStore很重要,千万不能丢失

    打包apk的时候需要对apk文件进行签名,如果想要自己给apk签名那么就要自己创建keystore.1.签名的意义为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package N ...

  2. WCF学习——构建第二个WCF应用程序(六)

    一.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据.若要创建客户端应用程序,你将另外添加一个项目,添加对该项 ...

  3. 原生ajax封装,数据初始化,

    var ajaxTool = { setting : { method : 'get', url : location.href, data : '', callback : function(){a ...

  4. gulp环境搭建

    简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:它不仅对网站资源进行优化,而且在开发过程中很多重复的任务,他可以通过明确的工具自动完成,使用它我们不仅可以很愉快的编写代码 ...

  5. Django学习(三)---Models(ORM框架)

    1) Django 中Models是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在sett ...

  6. 浅谈身为小白学习Linux系统的四点实用建议

    游戏.办公.安全,可以总结为是方便当代人们在生活中的刚需,我们大都是这些服务的使用者,而把单个功能整合起来那就必须谈到互联网,自然而然通过互联网要将Service发送给Service manageme ...

  7. 分享一个废弃已久的插件架构 (.Net)

    框架介绍 1:将插件暴露的页面数据接口复用到任何 WebForm和Mvc 架构的系统. 2:插件可在线卸载,发布,更新. 3:插件可分布式 独立 部署. 4:插件之间完全解耦,通过Url跳转 相互不需 ...

  8. Android系统--输入系统(十七)Dispatcher线程_分发dispatch

    Android系统--输入系统(十七)Dispatcher线程_分发dispatch 1. 回顾 InputRead线程从输入设备当中得到输入事件 对于读到输入事件稍作处理,比如紧急事件,来电时候按下 ...

  9. poj_3461: Oulipo

    题目链接 基础KMP题,本文提供一段能AC并且便于调试以及查看next数组的代码. 参考博客 http://blog.csdn.net/v_july_v/article/details/7041827 ...

  10. iOS App签名的原理

    前言 相信很多同学对于iOS的真机调试,App的打包发布等过程中的各种证书.Provisioning Profile. CertificateSigningRequest.p12的概念是模糊的,导致在 ...