Shell中括号的作用 作者:Danbo 时间:2015-8-7 单小括号() ①.命令组.括号中的命令将会断开一个子Shell顺序执行,所以括号中的变量不能被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.②.命令替换.等同于`cmd`,Shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh.③.用于初始化数组.如:array=(a b…
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern) 现在分述如下: 1.Shell中变量的原形:${var}大家常见的变量形式都是$var…
一.   bash [  ] 单双括号 基本要素: Ø  [ ] 两个符号左右都要有空格分隔 Ø  内部操作符与操作变量之间要有空格:如  [  “a”  =  “b”  ] Ø  字符串比较中,> < 需要写成\> \< 进行转义 Ø  [ ] 中字符串或者${}变量尽量使用"" 双引号扩住,避免值未定义引用而出错的好办法 Ø  [ ] 中可以使用 –a –o 进行逻辑运算 Ø  [ ] 是bash 内置命令:[ is a shell builtin 1.测试…
括号总结 () 单小括号 命令组,括号中的命令将会开一个新的子shell执行 括号中变量不能被剩下脚本使用 命令之间分号隔开 命令和括号之间可以没有空格 命令替换,等同于``反引号 $(xxx)会被替换成命令执行结果 初始化数组 arr=(a b c d) filenum=$(ls | wc -l) echo ${filenum} filenum=`ls | wc -l` echo ${filenum} ​ arr=(a b c d) echo ${arr[0]} // a echo ${arr…
一.   bash [  ] 单双括号 基本要素: Ø  [ ] 两个符号左右都要有空格分隔 Ø  内部操作符与操作变量之间要有空格:如  [  “a”  =  “b”  ] Ø  字符串比较中,> < 需要写成\> \< 进行转义 Ø  [ ] 中字符串或者${}变量尽量使用"" 双引号扩住,避免值未定义引用而出错的好办法 Ø  [ ] 中可以使用 –a –o 进行逻辑运算 Ø  [ ] 是bash 内置命令:[ is a shell builtin 1.测试…
#!/bin/bash declare var="xxx" # without space and use one = #1.judge whether the assignment statement returns true echo "----------------------test assignment in bracket --------------------------------" [ var="yyyy" ] &&…
1.Shell中变量的原形:${var}  一串命令的执行 #等价于 $ var=test $ echo $var test #例如,用在这个位置 $ echo ${var}AA testAA 2.命令替换$(cmd) 一串命令的执行 命令替换$(cmd)和符号`cmd`(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处 $ ls a b c $ echo $(ls) a b c $ echo `ls` a b c 我们来分析一下命令echo $(ls),以便理解所谓命令替换是…
电脑重装了系统,登录虚拟机的shell脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#zxl.sh 脚本名 if [ $1 == 1 ] then        ssh a.a.a.a else        ssh b.b.b.b fi so easy,运行脚本  ./zxl.sh  1  和  ./zxl.sh  2  成功登录了公司服务器和虚拟机.今天登录的时候,却出问题了. 我…
Shell test 单中括号[] 双中括号[[]] 的区别 在写Shell脚本的时候,经常在写条件判断语句时不知道该用[] 还是 [[]],首先我们来看他们的类别: $type [ [[ test [ is a shell builtin [[ is a shell keyword test is a shell builtin [ 和test 是 Shell 的内部命令,而[[是Shell的关键字. $test -f settings.py && echo True True $[ -…
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! shell编程中 不分数据类型, 所有的变量都 是字符串. 要进行 数值 / 数字的 整数运算, 就要用let, expr, (( ))等方式进行! 另外, shell中 只能处理整数, 不能处理 浮点数. 要用浮点运算, 需要用bc 程序 双小括号的使用 [foo@localhost ~]$ myfu…
原文出处:https://www.jianshu.com/p/855c9fb373ff Shell 里面的方括号(包括单中括号与双中括号)可用于以下三种情况的判断: 算术比较. 比如一个变量是否为0, [ $var -eq 0 ] 文件属性测试.比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ] 字符串比较. 比如两个字符串是否相同, [[ $var1 = $var2 ]] [] 常常可以使用 test 命令来代替,后面有介绍. 算术比较 对变量或值进行算术条件判…
一.小括号,园括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b c d) 2.双小括号 ((  )…
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b c d) 2.双小括号 (( ))…
四.shell 中的条件判断命令 test 和 [   test 命令可以处理 shell 脚本中的各类工作.它产生的不是一般的输出,而是可使用的退出状态.test 命令通过接受各种不同的参数,来控制要执行哪种测试.在许多系统上,test 命令与 [ 命令的作用其实是一样的,使用 [ 命令的时候,一般在结尾加上 ] 符号,使代码更具可读性.另外,需要注意一点的是,在使用 [ 命令时,[ 符号与被检查的语句之间应该留有空格.shell 中通常使用 test 命令来产生控制结构所需要的条件,根据 t…
1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. (2) 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首,如:^hello会匹配以hello开头的行 $ 匹配行尾,如:hello$会匹配以hello结尾的…
转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要…
1. 基础的正则表达式 1.1 正则表达式与通配符 (1)正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式. (2)通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. 1.2 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次(是前一个字符,这与bash的通配符不同) . 匹配除了换行符外任意一个字符 ^ 匹配行首.例如:^hell…
3. Bash的基本功能 3.1 历史命令与命令补全 (1)历史命令:#history [选项] [历史命令保存文件] ①选项:-c:清空历史命令: -w:把缓存中的历史命令写入文件~/.bash_history (2)历史命令的保存:默认会保存1000条,可修改环境变量配置文件/etc/profile的HISTSIZE变量中的值. (3)历史命令的调用 ①使用上.下箭头调用以前的历史命令 ②使用"!n"重复执行第n条历史命令 ③使用"!!"重复执行上一条命令 ④使…
shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{        ls -rtl                 # 按时间倒叙列出所有目录和文件 ll -rt    touch file              # 创建空白文件    rm -rf 目录名           # 不提示删除非空目录(-r:递归删除 -f强制)    dos2unix                # windows文本转linux文本      unix2dos                #…
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号echo 时,bash 不会对单引号中的变量求值 2.求变量的长度 var='hello world' echo ${#var} \\ 11 3.$0 表示 SHELL 的名称,是那种SHELL 一般为 bash $SHELL 为SHELL 的位置 /bin/bash 4.完成定义2个变量 no1=1,n…
shell条件测试可以通过以下两种方式: test   参数    测试内容 [ 参数  测试内容 ] 一.测试文件类型: test  -e   文件名          (测试文件是否存在) [ -e  文件名 ]                测试文件是否存在,注意中括号两边的空格 test -f   文件名             判断是否为普通文件 test -d   文件名            判断是否为目录 test -b   文件名            判断是否为块设备文件 t…
Shell 是一门脚本语言(又称解释型语言),Shell 其实就是一个纯文本文件,通常以[#!/bin/bash]开始.脚本自上而下,从左至右分析并执行,其中[#]后面的为注释.脚本有以下几种运行方式:(1) [bash shell.sh] (2)[sh shell.sh](3)[./shell.sh]当前目录下执行,用户必须有可执行权限 (4)[. ./shell.sh]或[source shell.sh]无执行权限也能执行,[source]一般用于读取配置文件使其立即生效. 第一个 Shel…
基本格式:test expression expression为test命令构造的表达式.这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值:test命令或者返回0(真) 或者返回1(假). test可理解的表达式类型分为四类: 表达式判断 字符串比较 数字比较 文件比较 1)判断表达式 if test  (表达式为真)if test !表达式为假test 表达式1 –a 表达式 2                两个表达式都为真tes…
一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.    ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh.     ③用于初始化数组.如:array=(a b c d)  …
什么是正则表达式?正则表达式是用于描述字符排列和匹配模式的一种语法规则.在很多程序设计语言中都支持利用正则表达式来进行字符串的操作,不同语言中的正则表达式略有不同,但是毕竟都是正则,其本质思想都是一致的,当我们掌握了shell中的正则后,再去看python或者perl里面的正则表达式时,会发现其实都是一样的东东. 在shell的一些命令中,有些并不支持正则表达式,但是它们支持Linux里面的通配符,那么通配符又是什么东东呢,它跟正则表达式又有什么关系? 正则表达式用来在文件中匹配符合条件的字符串…
目录 引言 shell中的数组 数组的定义 数组的使用 实际的例子 shell中大小的比较 shell中的括号 shell中函数的定义 杂项知识点 字符串转数组 常用判断标志 linux后台运行相关 AWK 创建目录 重命名命令 动态显示进度条 参考文献 引言 SHELL在处理一些问题的时候有得天独厚的优势,快捷方便,学会了还可以显摆显摆,当然了,shell的语法有点坑爹,没有系统的学过,只能一点一点的积累. 今天这个是在实现一个刷新数据库数据的脚本的时候碰到的一些知识点,刷新的时候用到了正则匹…
内容: 一.if-then命令 二.if-then-else命令 三.test命令 四.case命令 1.if-then结构化命令中最基本的类型,其格式如下: if command then commands fi 这里需要注意的是在其他语言中if 语句之后的对象是一个等式来测试是TRUE还是FALSE值,而在bash shell中if 语句会运行if 行定义那个命令.如果该命令退出码是数字0,则表示该命令运行成功,位于then 后面的命令就会运行.如果退出码是其他值,那么then后面的命令就不…
((i=$j+$k))    等价于 i=`expr $j + $k`((i=$j-$k))     等价于   i=`expr $j -$k`((i=$j*$k))     等价于   i=`expr $j \*$k`((i=$j/$k))     等价于   i=`expr $j /$k` Let expressions 执行一个或多个表达式.表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来. 例:let “I = I + 1” 或 let i=i+1 算术运算符…
在Shell中的小括号,大括号结构和有括号的变量,命令的用法如下: 1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=string},${var:?string}5.$((exp))6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern) 现在来一一详细介绍:    1)Shell中变量的原形    这个最常见的变量形式就是$var,打印var用命令  …
Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail:邮箱,#function(功能),#Version:版本 3.脚本注释(用英文注释 中文可能乱码.) 4.脚本以.sh结尾 不是必须的 5.成对的符号,一次性写全,退格补内容.特殊符号[ xxxx ] 中括号中间内容两边都有空格. 6 .代码有条理性(通过缩进). 2.执行:1.sh xxx.sh…