linux shell 各种分号,括号使用方法总结
2013-12-09 17:33
204 查看
各种括号的用法总结如下
1.Shell中变量的原形:${var}
大家常见的变量形式都是$var
2.命令替换$(cmd)
命令替换$(cmd)和符号`cmd`(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处
3.一串的命令执行()和{}
()和{}都是对一串的命令进行执行,但有所区别:
A,()只是对一串命令重新开一个子shell进行执行
B,{}对一串命令在当前shell执行
C,()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
D,()最后一个命令可以不用分号
E,{}最后一个命令要用分号
F,{}的第一个命令和左括号之间必须要有一个空格
G,()里的各命令不必和括号有空格
H,()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
4,几种特殊的替换结构:${var:-string},${var:+string},${var:=string},${var:?string}
5.POSIX标准的扩展计算:$((exp))
这种计算是符合C语言的运算符,也就是说只要符合C的运算符都可用在$((exp)),甚至是三目运算符和for语句。
注意:这种扩展计算是整数型的计算,不支持浮点型.若是逻辑判断,表达式exp为真则为1,假则为0。
6.四种模式匹配替换结构:${var%pattern},${var%%pattern},${var#pattern},${var##pattern}
这四种结构的意义是:${var%pattern}和${var%%pattern}表示从最右边(即结尾)匹配的,${var#pattern} 和${var##pattern}从最左边(即开头)匹配的。其中${var%pattern}和${var#pattern}是最短匹配,${var%%pattern}和${var##pattern}是最长匹配。只有在pattern中使用了通配符才能有最长最短的匹配,否则没有最长最短匹配之分。
7.[ 和 [[
$ type [ [[ test
[ is a shell builtin
[[ is a shell keyword
test is a shell builtin
各种引号的用法总结如下
1、 单引号 ‘
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。
2、 双引号 “
由双引号括起来的字符,除$、\、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于$来说,就是用其后指定的变量的值来 代替这个变量和$;对于而言,是转义字符,它告诉shell不要对其后面的那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加 上的只有四个字符$,,’和”本身。而对”号,若其前面没有加,则Shell会将它同前一个”号匹配。
3、 反引号 `
反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
本文出自 “Linux_life” 博客,请务必保留此出处http://snbolinux.blog.51cto.com/3069187/1338492
1.Shell中变量的原形:${var}
大家常见的变量形式都是$var
2.命令替换$(cmd)
命令替换$(cmd)和符号`cmd`(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处
3.一串的命令执行()和{}
()和{}都是对一串的命令进行执行,但有所区别:
A,()只是对一串命令重新开一个子shell进行执行
B,{}对一串命令在当前shell执行
C,()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
D,()最后一个命令可以不用分号
E,{}最后一个命令要用分号
F,{}的第一个命令和左括号之间必须要有一个空格
G,()里的各命令不必和括号有空格
H,()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
4,几种特殊的替换结构:${var:-string},${var:+string},${var:=string},${var:?string}
5.POSIX标准的扩展计算:$((exp))
这种计算是符合C语言的运算符,也就是说只要符合C的运算符都可用在$((exp)),甚至是三目运算符和for语句。
注意:这种扩展计算是整数型的计算,不支持浮点型.若是逻辑判断,表达式exp为真则为1,假则为0。
6.四种模式匹配替换结构:${var%pattern},${var%%pattern},${var#pattern},${var##pattern}
这四种结构的意义是:${var%pattern}和${var%%pattern}表示从最右边(即结尾)匹配的,${var#pattern} 和${var##pattern}从最左边(即开头)匹配的。其中${var%pattern}和${var#pattern}是最短匹配,${var%%pattern}和${var##pattern}是最长匹配。只有在pattern中使用了通配符才能有最长最短的匹配,否则没有最长最短匹配之分。
7.[ 和 [[
$ type [ [[ test
[ is a shell builtin
[[ is a shell keyword
test is a shell builtin
各种引号的用法总结如下
1、 单引号 ‘
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。
2、 双引号 “
由双引号括起来的字符,除$、\、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于$来说,就是用其后指定的变量的值来 代替这个变量和$;对于而言,是转义字符,它告诉shell不要对其后面的那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加 上的只有四个字符$,,’和”本身。而对”号,若其前面没有加,则Shell会将它同前一个”号匹配。
3、 反引号 `
反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
本文出自 “Linux_life” 博客,请务必保留此出处http://snbolinux.blog.51cto.com/3069187/1338492
相关文章推荐
- Linux shell常用快捷键
- Windows Shell 学习笔记一:PIDL(The Struture of the Shell)
- windows shell里的文件系统<用delphi写的>
- SHELL脚本自动部署KVM虚拟化
- SHELL脚本自动化部署MFS分布式文件系统
- RH033读书笔记(11)-Lab 12 Configuring the bash Shell
- Linux shell脚本基础学习
- shell脚本输出太多的问题
- First Kshell Script
- shell scripts的控制逻辑结构自结
- HBase shell commands
- xp_cmdshell 命令开启 NET USE 命令 建立共享文件
- WinExec、ShellExecute和CreateProcess及返回值判断方式
- shell编程基础(二)
- shell中if条件字符串、数字比对,[[ ]]和[ ]区别
- shell编程前言(一)
- shell_文件列表
- 递归目录的shell脚本
- vim独家秘技两条(1)在任意列中插入等差数列(非插件)(2)利用shell命令插入某个目录下的所有文件名(可用于cocos2d-x android的.mk脚本配置)(下)
- Shell脚本的追踪与调试