Bash变量

摘要:
1.Bash变量有两种类型:局部变量和环境变量。局部变量仅在创建它们的shell中有效。环境变量是可以由创建它们的shell及其派生子进程使用的变量。它们也常被称为全局变量。一般来说,环境变量更大。它们是可以通过内置命令导出的变量。

1、变量类型

Bash变量有两种:局部变量和环境变量
局部变量:局部变量的范围仅在创建它的Shell中有效
环境变量:能为创建它的Shell及其派生子进程所用的变量,也经常被称为全局变量,一般约定环境变量为大些,它们是那些可以通过内置命令export导出的变量。

2、变量命名

变量名必须以字母或下划线开始,其余部分则可以由字符、数字或下划线构成。变量名中不能含有点字符.。
大小写敏感
给变量赋值时,不要在等号两边留下空格。格式为:
#variable=value
当变量值含有空格时,必须使用引号。
#variable='my value'
将变量设置为空,在等号后面跟一个换行符:
#variable=

3、创建变量

1)直接赋值,注意=两边不能有空格
#variable=value
 
2)declare内置命令
#declare variable=value
 
declare : 不带参数将列出所有变量的值
declare -f : 列出函数名及其定义
declare -r: 声明只读变量
declare -x: 将变量名导出到子Shell中
declare -i: 将变量置为整型
delare -F: 只列出函数名
 
3)创建只读变量
两种方式:readonly命令或declare -r
#name=Tom
#readonly name      //不能unset, 不能重新赋值
#declare -r name=Tom   //不能unset, 不可以重新赋值  (ubuntu 12.04, 经实验,不行)
#declare name=Perter   //不行
 
值得注意的是,如果你不小心将变量设定为『只读』,通常得要注销再登入才能复原该变量的类型了! 

4、清空变量

除了只读变量外,局部变量和环境变量都可以通过unset命令清空,set命令将不显示被unset的变量
#unset variable

5、打印变量值

echo $var
printf $var
 
如果是数组,则需要加上大括号
echo ${str[1]}
printf ${str[1]}

6、其它

export参数
-f : 导出函数,而不是变量
-n : 将已导出的全局变量转换为局部变量,该变量不会导出到子进程中
-p : 显示所有的全局变量

=-=-=-=-=
Powered by Blogilo

免责声明:文章转载自《Bash变量》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇opencv学习笔记Shader食谱 Chapter3--Toonshader卡通效果下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java 变量类型

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。 以下列出了一些变量的声明实例。注意有些包含了初始化过程。 inta,...

使用Terminal

在Mac中Terminal是使用bash的,下面列一列bash中常用的快捷键,可以提高工作效率哦: CRTL + W: 删除光标所在位置左边的第一个word,并且光标所在的字符不会被删掉; CRTL + R : 搜索命令历史 ESC + DEL:  删除光标所在位置左边的第一个word或者空格 OPTION+LEFT: 向左移动一个word OPTION+...

jmeter数据驱动csv+批量导出数据到csv文件

基本的软件使用,我们简单一点,附图来讲,详细地方不懂的可以自行百度。 使用Jmeter 批量导入数据,之后批量导出数据到csv文件,可以帮助我们更好的整理数据,在工作中比较常用。 大致过程可以分三步:1. 导入csv文件;2. 变量引用; 3. 批量导出csv文件 1. 导入csv文件: point1:建议使用notpad, sublime等编辑器来编辑保...

Linux用户(组)管理

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码...

jquery 给input text元素赋值,js修改表单的值

简单粗暴: (第一种) $('#checkUserName').attr("value",sessionUser.name); (第二种) $("#checkUserName").val(sessionUser.name) //document.getElementById("checkUserName").value=money;//...

自定义maven变量以及maven内置常量

本文转自:http://zheng12tian.iteye.com/blog/1770909 在创建Maven工程后,插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量。 在根节点project下增加properties节点,所有自定义变量均可以定义在此节点内,如下所示:  Java代码   &l...