缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习都应该遵循简单.易用的原则. shell编程中数组的简单用法及示例 新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问…
1 单引号 a=1 b='a string' 单引号屏蔽各种特殊字符.echo ‘$a " % \n ' 只能得到 $a " % \n 单引号可以指明界限,防止由分隔符----空格引起的歧义.$b不能写成b=a string,会报错. 2 双引号 a=1 基本和单引号一样,但是双引号支持内部字符有特殊含义,比如换行,变量,传递的参数等.echo “$a /" //  \\ " 输出 1 ” / \. 3 反引号 a=" hello linux !"…
一.小括号() 单小括号 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. 命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. 用于初始化数组.如:array=(a b c d) 双小括号(()) 整数扩展.这种扩展计算是整数型…
1.1.变量替换 变量替换的六种形式 实例:非贪婪和贪婪的区别 从头部删除 [root@VM_0_9_centos shell_learn]# var_1="i love you,do you love me" [root@VM_0_9_centos shell_learn]# echo $var_1 i love you,do you love me [root@VM_0_9_centos shell_learn]# var1=${var_1#*ov} [root@VM_0_9_ce…
双括号运算符是shell非常强大的扩展. 这里简要介绍两种使用方式: 1.条件判断 跟在if.while.until,for等需要逻辑条件的命令后,进行逻辑判断 if(( expr));then … fi ;i<n;i++)) do … done 2.数学运算 在变量运算时,可以使用$((expr)),对表达式求值 echo $(((i-0xbaba)|0xff00)) 0.注 双括号内的变量可不加$符号: 支持几乎所有c语言形式表达式: 本质上还是对字符的处理,所以可以这样表示十六进制数运算…
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! shell编程中 不分数据类型, 所有的变量都 是字符串. 要进行 数值 / 数字的 整数运算, 就要用let, expr, (( ))等方式进行! 另外, shell中 只能处理整数, 不能处理 浮点数. 要用浮点运算, 需要用bc 程序 双小括号的使用 [foo@localhost ~]$ myfu…
今天在 SegmentFault 上看到又有人问起关于Shell里各种括号的问题.对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括号的用法和区别,别的Shell我不会... (( )) :一对圆括号有两个地方用到. 1,for循环, for (( expr1 ; expr2 ; expr3 )) 这里一对双括号里边的表达式,GNU的文档指出,expr1支持 Shell Arithmetic:expr2不为0时,expr3被赋值…
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, 这有助于shell解释器的写法. 在调用方法上, 跟 命令的方式是一样的, 也是 函数名 arg1 arg2 ... 函数名就相当于命令名. 对于一个命令来说, 格式是: ls /etc 命令名 [options] arg... 所以函数也是一样 funcName arg1 arg2 ..., 这里…
shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹配,并对匹配行进行特定处理 语法格式 第一种形式:stdout | sed [option] "pattern command" 第二种形式:sed [option] "pattern command" file 命令格式:sed [option] "/pat…
Shell 编程 更改shell脚本权限 chmod u+x shell.sh 标准头部写法 #! /bin/bash #! /bin/dash 变量使用 a=10 print $a 读取命令行参数 $# # 传递给脚本的参数个数 $@ # 传递给脚本所有的参数 $0 # 当前脚本的名字 $1 # 传递给脚本的第一个参数(后面依次类推) PS: ./test.sh COMP | head 此处读入的外界参数只有COMP,管道后面的并不会被当作参数 if的4种模式 1 if(($# != 2))…