- 浏览: 4733633 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
bzhao:
你也应该可以这样:(not tested)./rbtunnel ...
在Bash脚本中怎么关闭文件描述符? -
bzhao:
如果有A进程原代码情况下,通过如下调用,把他的子进程继承关闭则 ...
在Bash脚本中怎么关闭文件描述符? -
Master-Gao:
楼主咋没分析下源码呢?
我使用过的Linux命令之dirname - 截取给定路径的目录部分 -
jiedushi:
tail -F 就可以吧
Linux下实时跟踪log4j日志文件的bash脚本 - 增强了tail -f的功能 -
java_is_new:
新手学习了,就是不明白为一个网卡配多个ip有什么用
我使用过的Linux命令之ifconfig - 网络配置命令
Bash字符串处理(与Java对照) - 1.(字符串)变量声明
In Java
Java中变量名称的规则
Java变量名称是区分大小写的。变量名称是一个合法的标识符,没有长度限制,由Unicode字符、数字、美元符、下划线组成,不能是关键字和保留字。最好是字母开头,跟上字母或数字,采用Camel命名规则。
Java变量的类型
实例变量 Instance Variables (Non-Static Fields)
类变量 Class Variables (Static Fields)
局部变量 Local Variables
参数 Parameters
在Java中定义字符串变量
String s1;
String s2 = "1243";
String s3 = s1 + s2;
static final String BASH = "BASH";
In Bash
变量名称
Shell变量名称,只能包括字母、数字和下划线,并且只能以字母和下划线开头。通常情况下,Shell变量名称为大写的形式。(PS:找遍了 info bash、man bash、Advanced Bash-Scripting Guide等都没有找到关于Shell变量名称的规则说明,最后只能求助于互联网了。)
The name of a variable can contain only letters ( a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _).
By convention, Unix Shell variables would have their names in UPPERCASE.
The following examples are valid variable names:
_ALI
TOKEN_A
VAR_1
VAR_2
Following are the examples of invalid variable names:
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
The reason you cannot use other characters such as !,*, or - is that these characters have a special meaning for the shell.
声明变量并赋值
在Bash中,变量并不区分类型,因此也不需要给变量指定类型。
在Bash中声明变量不需要显式进行,给变量赋值即可
格式:VAR=STRING
格式:VAR="STRING"
格式:VAR='STRING'
VAR为变量名
STRING为字符串
要注意的是,等号(=)两侧不能有空白。
如果字符串中间有空白或特殊字符,则需要用单引号或双引号引起来(参见“Bash字符串处理(与Java对照) - 2.字符串的表示方式(字符串常量)”)。
[root@jfht ~]# STR=hello
[root@jfht ~]# STR=hello\ world
[root@jfht ~]#
STR="hello world"
[root@jfht ~]#
STR='hello world'
引用变量(访问变量)
如果要得到VAR变量的值,就需要引用变量,有如下两种格式:
格式:$VAR
格式:${VAR}
To access the value stored in a variable, prefix its name with the dollar sign ( $):
要注意的是,在给变量赋值时,变量名不能加上$。
格式:VAR=STRING 而不是 $VAR=STRING
使用declare命令来声明变量
在Bash中有一个declare指令,也可以定义变量,效果与VAR=STRING相同
格式:declare VAR=STRING
[root@jfht ~]# declare STR=dummy
[root@jfht ~]# echo $STR
dummy
声明变量但不设置初始值
格式:VAR=
等号右侧不写任何字符,即设置变量VAR为空。
[root@jfht ~]# VAR=
[root@jfht ~]# echo "$VAR"
[root@jfht ~]#
格式:declare VAR
使用declare声明变量,如果变量原来声明过,则其值不变,即没有复位变量的功能。
[root@jfht ~]# VAR=STRING
[root@jfht ~]# echo "$VAR"
STRING
[root@jfht ~]# declare VAR
[root@jfht ~]# echo "$VAR"
STRING
格式:declare VAR=
等同于VAR=
[root@jfht ~]# VAR=STRING
[root@jfht ~]# declare VAR=
[root@jfht ~]# echo "$VAR"
[root@jfht ~]#
判断变量是否声明?
格式:declare -p VAR
显示VAR变量是否声明过了,如果没有打印 not found,否则显示它的属性和值。
will display the attributes and values of each NAME.
[root@smsgw root]# declare -p VAR
-bash: declare: VAR: not found
[root@smsgw root]# echo $?
1
[root@smsgw root]# VAR=
[root@smsgw root]# declare -p VAR
declare -- VAR=""
[root@smsgw root]# echo $?
0
[root@smsgw root]# VAR=STRING
[root@smsgw root]# declare -p VAR
declare -- VAR="STRING"
[root@smsgw root]#
格式:${!VAR*}
这个参数扩展格式可以找出所有以VAR开头的变量来,但不能确切的知道是否有VAR这个变量,比如有可能还有VAR1。
Expands to the names of variables whose names begin with prefix,
separated by the first character of the IFS special variable.
[root@jfht ~]# echo ${!VAR}
[root@jfht ~]# VAR=
[root@jfht ~]# echo ${!VAR}
[root@jfht ~]# echo ${!VAR*}
VAR
[root@jfht ~]# VAR1=
[root@jfht ~]# echo ${!VAR*}
VAR VAR1
[root@jfht ~]#
将变量声明为只读
格式:readonly VAR=STRING
The given NAMEs are marked readonly and the values of these NAMEs may
not be changed by subsequent assignment. If the -f option is given,
then functions corresponding to the NAMEs are so marked. If no
arguments are given, or if `-p' is given, a list of all readonly names
is printed. The `-a' option means to treat each NAME as
an array variable. An argument of `--' disables further option
processing.
格式:declare -r VAR=STRING
取消变量、删除变量
格式:unset VAR
[root@jfht ~]# VAR=STRING
[root@jfht ~]# echo "$VAR"
STRING
[root@jfht ~]# unset VAR
[root@jfht ~]# echo "$VAR"
[root@jfht ~]#
定义局部变量
在默认情况下,变量都是全局变量。在前面加上local或者declare之后就变成了局部变量。
格式:local VAR
格式:local VAR=STRING
格式:declare VAR
格式:declare VAR=STRING
局部变量在函数中使用,如下所示
myfunc() {
GGG=Global
# GGG变量是全局变量
local STR=Hello
# STR变量的有效范围只在myfunc函数内
declare VAR=World
# VAR变量也是局部变量
}
[root@smsgw root]# myfunc(){
> GGG=Global
> local STR=Hello
> declare VAR=World
> }
[root@smsgw root]# GGG=YesGlobal
[root@smsgw root]# STR=NotHello
[root@smsgw root]# VAR=NotWorld
[root@smsgw root]# myfunc
[root@smsgw root]# echo $GGG $STR $VAR
Global NotHello NotWorld
[root@smsgw root]#
本文链接:http://codingstandards.iteye.com/blog/1165533 (转载请注明出处)
返回目录:Java程序员的Bash实用指南系列之字符串处理(目录)
下节内容:Bash字符串处理(与Java对照) - 2.字符串的表示方式(字符串常量)
发表评论
-
Bash字符串处理(与Java对照) - 22.判断字符串是否数字串
2011-10-25 09:25 5427Bash字符串处理(与Java对照) - 22.判断字符串是否 ... -
Bash字符串处理(与Java对照) - 21.字符串正则匹配
2011-10-24 09:07 11010Bash字符串处理(与Java对照) - 21.字符串正则匹配 ... -
Bash字符串处理(与Java对照) - 20.查找子串的位置
2011-10-19 09:14 6735Bash字符串处理(与Java对照) - 20.查找子串的位置 ... -
Bash字符串处理(与Java对照) - 19.查找字符的位置
2011-10-18 09:06 5902Bash字符串处理(与Java对照) - 19.查找字符的位置 ... -
Bash字符串处理(与Java对照) - 18.格式化字符串
2011-10-17 09:18 4928Bash字符串处理(与Java对照) - 18.格式化字符串 ... -
Bash字符串处理(与Java对照) - 17.判断是否以另外的字符串结尾
2011-10-09 08:58 6931Bash字符串处理(与Java对照) - 17.判断是否以另外 ... -
Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头
2011-10-08 09:17 8302Bash字符串处理(与Java对照) - 16.判断是否以另外 ... -
Bash字符串处理(与Java对照) - 15.计算子串出现的次数
2011-09-28 09:37 3369Bash字符串处理(与Java对照) - 15.计算子串出现的 ... -
Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)
2011-09-27 13:22 8269Bash字符串处理(与Java对照) - 14.判断是否包含另 ... -
Bash字符串处理(与Java对照) - 13.字符串数组连接(以指定分隔符合并)
2011-09-26 09:19 5119Bash字符串处理(与Java对照) - 13.字符串数组连接 ... -
Bash字符串处理(与Java对照) - 12.字符串连接
2011-09-23 09:08 6315Bash字符串处理(与Java对照) - 12.字符串连接 ... -
Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较)
2011-09-21 09:31 5648Bash字符串处理(与Java对照) - 11.比较两个字符串 ... -
Bash字符串处理(与Java对照) - 10.判断两个字符串是否相等(不等)
2011-09-20 09:16 6845Bash字符串处理(与Java对照) - 10.判断两个字符串 ... -
Bash字符串处理(与Java对照) - 9.获取字符串指定位置的字符、遍历字符串中的字符
2011-09-19 09:13 3694Bash字符串处理(与Java对照) - 9.获取字符串指定位 ... -
Bash字符串处理(与Java对照) - 8.计算字符串长度
2011-09-16 09:20 5596Bash字符串处理(与Java对照) - 8.计算字符串长度 ... -
Bash字符串处理(与Java对照) - 7.字符串与默认值
2011-09-15 09:20 3895Bash字符串处理(与Java对照) - 7.字符串与默认值 ... -
Bash字符串处理(与Java对照) - 6.判断字符串是否为空(不为空)
2011-09-14 09:20 7159Bash字符串处理(与Java对照) - 6.判断字符串是否为 ... -
Bash字符串处理(与Java对照) - 5.字符串输入(读取字符串)
2011-09-13 09:28 3886Bash字符串处理(与Java对照) - 5.字符串输入(读取 ... -
Bash字符串处理(与Java对照) - 4.字符串输出
2011-09-08 09:30 3700Bash字符串处理(与Java对照) - 4.字符串输出 I ... -
Bash字符串处理(与Java对照) - 3.给(字符串)变量赋值
2011-09-07 09:29 6838Bash字符串处理(与Java ...
相关推荐
33.8.1. 被感染的脚本 33.8.2. 隐藏Shell 脚本源码 33.9. 移植话题 33.10. 在Windows 下进行Shell 编程 34. Bash, 版本 2 和 3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于作者 35.3. ...
33.8.1. 被感染的脚本 33.8.2. 隐藏Shell脚本源码 33.9. 移植话题 33.10. 在Windows下进行Shell编程 34. Bash, 版本 2 和 3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于...
4.查找字符串 5.显示文件头部 6.显示文件尾部 7.忽略文件中的重复行 8.比较两个文件 9.按顺序显示文件内容 三、进程间通信命令----------------------------------------------------------------------------...
操作字符串 9.3. 参数替换 9.4. 指定变量的类型: 使用declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环与分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环...
9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare 或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 ...
1. 字符串操作函数 1.1. 初始化字符串 1.2. 取字符串的长度 1.3. 拷贝字符串 1.4. 连接字符串 1.5. 比较字符串 1.6. 搜索字符串 1.7. 分割字符串 2. 标准I/O库函数 2.1. 文件的基本概念 2.2. fopen/fclose 2.3. ...
/字符串 从上往下查找匹配的字符串; ?字符串 从下往上查找匹配的字符串; n 继续查找。 四、退出命令 exit 退出; DOS内部命令 用于退出当前的命令处理器(COMMAND.COM) 恢复前一个命令处理器。 Ctrl+d 跟exit...
9.2. 操作字符串 9.3. 参数替换 9.4. 指定变量的类型: 使用declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环与分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4....
安装JAVA 环境..................................... 18 安装多媒体播放驱动............................. 20 Linux 基础.............................................................. 23 Shell ................
寻找恶意字符串。 -GUI库 -来自安全专家集合,为 。 编写有效的bash脚本 1.评论 始终使用注释,以便其他人可以更轻松地理解您的想法以及脚本/命令的目的。 #this is a singel comment <# multiple lines of ...
包括对bash字符串替换功能的支持。 文献资料 。 支持功能 ${var^} ${var^^} ${var,} ${var,,} ${var:position} ${var:position:length} ${var#substring} ${var##substring} ${var%substring} ${var%%...
shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution 原因:两种shell语言解释器 bash和dash 查看当前/bin/sh ...
(4)在Bash中,变量的默认类型都是字符串型 (5)在任何系统中,目录名、文件名、变量名都要有含义 3.变量的分类 (1)用户自己定义变量。变量自定义的 (2)环境变量:这种变量中主要保存的是和系统操作环境相关...
学习字符串String 2019-12-05 公告 想让大家平时练习时就把 git 和 maven 用上,今晚讲一下它们的简单用法 在 github 上创建项目 创建 maven 项目,常见的配置,如何在 pom.xml 加入依赖项目 maven 编译 git 提交...
在这里,我们使用内置的id命令,该命令仅返回输入参数(这里是一个简单的字符串) 管子 > square 2 | _ + 2 4 现在,通过使用管道运算符,它变得很有趣。 管道运算符将获取左侧的结果,并将其输入到_变量下的右侧。...
如果给出的字符串不能作为唯一标识,则bash不予补全;再次敲击TAB键,bash会给出参考列表;如果参考列表中的内容过多,bash会询问是否显示该列表;根据提供的参数路径来进行补全,如果参数没有任何提示信息,则默认...
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 ...set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量...
判断一个文件的内容是不是为空,使用语句: if test -z `cat filename` 当filename为空或者只有一行没有空格的字符串的时候,一切正常,反之,则会报:too many arguments,...可以用双引号将字符串自变量括起来消除
Bash脚本 ...Shell支持变量,它们可以是字符串,整数,实数等,而无需数据类型声明。 变量可以由$VAR_NAME访问。 变量声明必须采用VAR_NAME=VAR_VALUE格式,并且之间不得有任何空格,例如VAR = VALUE
在bash里面变量默认是以字符串类型来存储的;就算我们在这里声明的这两个变量为整数也不会做运算;declare命令-i可以声明我们定义的变量为整型bash也只会做变量替换; declare -i num3=9 declare -i num4=1 echo ...