shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
2014-08-23 16:06
661 查看
http://blog.csdn.net/fansongy/article/details/6721575
1、env显示当前的环境变量
2、PS1='[\u@\h \w \A] \$' 可以设置bash的命令与提示符。
3、echo $$ 显示当前bash的PID号
4、echo $?显示上一条指令的回传值(指令成功回传值为0,其他为非零)
5、unset name 取消变量的定义
6、定义变量语法:
变量名=变量值
[注]:等号两边不能留空格,否则代表变量包含空格;若变量本身就包含空格,则整个字符串都要用双引号括起来。
7、引用变量:
$变量名 或 ${变量名}(强调变量)
为了区分变量名与命令名,建议所有的变量名都用大写字母表示
8、export命令可以将一个局部变量提供给shell执行的其他命令使用:
export 变量名
export 变量名=变量值
9、内部变量
$?:命令执行后返回的状态(0为正确执行;非0为出错) 可用于检查上一个命令执行是否正确
$$:当前进程的进程号
$!:最近后台进程号
$#:位置参数的数量,$1表示第一个自变量
$0:当前执行的进程名
$1-$9:脚本参数
$*:所有位置参数的内容
10、条件测试:
–格式:test conditions 也可以写作 [ conditions ]
test在以下4种情况下使用:
–字符比较
–两个数值的比较
–文件操作,例如文件是否存在及文件的状态等
–逻辑操作,可以进行and/or,与其他条件联合使用
test用于计算一个条件表达式的值,经常在条件语句和循环语句中用来判断某些条件是否满足,可以使用很多shell的内部操作符。
11、字符串操作符
通常与test结合使用,如:
#!?bin/bash
string_1=a string_2=b
test string_1 = string_2
echo $?
运行应该返回 1 。
12、整数操作符:计算整数表达式
例如:
#!/bin/bash
n1=20
n2=30
[ $n1 -eq $n2 ]
echo $?
[ $n1 -gt $n2 ]
echo $?
输出结果分别为 1 和 1
13、文件操作符
用test检测,用法同字符操作类似 例如: test -w file
14、逻辑操作符
连接两个表达式 :如 [ test string1 = string2 -a test -w file ]
15、shell中的引号:
1、单引号(‘):单引号括起来的字符(包括特殊字符)都作为普通字符。
2、双引号:由双引号括起来的字符,除$、\、’、和”这几个字符仍是特殊字符并保留其特殊功能,其余字符仍作为普通字符对待。
[注]:
$:用其后指定的变量值来代替这个变量
\:转义字符,其后面的字符为普通字符。通常需要加\的只有4个字符, $、\、’、和”。
对于”号,如果没加\,则与前一个“号匹配
3、反引号(`): 与键盘上的~同一个键上的符号。反引号括起来的字符串被shell解释为命令行,执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号部分。
16、通配符
*:代表任何字符串。例:f*匹配以f打头的任意字符串。
文件名前的圆点(.)和路径名中的的斜线(/)必须显式匹配。
例:”*”不能匹配.file,只有”.*”才可以匹配.file。
?:代表任何单个字符。
[ ]:代表指定的一个字符范围,只要文件名中[ ]位置处的字符在[ ]中指定的范围之内,那么这个文件名就与这个模式串匹配。
例:f[a-d] 或f[abcd]
17、调试执行 sh -x abc.sh 调试执行abc.sh 。sh -n abc.sh 不执行脚本,只检测语法错误。
18、exit 退出程序执行。正常退出,返回值为0;非0表示非正常退出。例如:exit 0
19、awk命令文件内容提取 例如:检测提取root用户 awk -F: '$3==0 {print $1}' /etc/passwd 其中-F更改分隔符
20、sh执行脚本的权限:对脚本有-r的权限,并且对脚本所在目录有-rx权限。
直接执行脚本的权限:对脚本有-rx的权限,并且对脚本所在目录有-rx权限。
1、env显示当前的环境变量
2、PS1='[\u@\h \w \A] \$' 可以设置bash的命令与提示符。
3、echo $$ 显示当前bash的PID号
4、echo $?显示上一条指令的回传值(指令成功回传值为0,其他为非零)
5、unset name 取消变量的定义
6、定义变量语法:
变量名=变量值
[注]:等号两边不能留空格,否则代表变量包含空格;若变量本身就包含空格,则整个字符串都要用双引号括起来。
7、引用变量:
$变量名 或 ${变量名}(强调变量)
为了区分变量名与命令名,建议所有的变量名都用大写字母表示
8、export命令可以将一个局部变量提供给shell执行的其他命令使用:
export 变量名
export 变量名=变量值
9、内部变量
$?:命令执行后返回的状态(0为正确执行;非0为出错) 可用于检查上一个命令执行是否正确
$$:当前进程的进程号
$!:最近后台进程号
$#:位置参数的数量,$1表示第一个自变量
$0:当前执行的进程名
$1-$9:脚本参数
$*:所有位置参数的内容
10、条件测试:
–格式:test conditions 也可以写作 [ conditions ]
test在以下4种情况下使用:
–字符比较
–两个数值的比较
–文件操作,例如文件是否存在及文件的状态等
–逻辑操作,可以进行and/or,与其他条件联合使用
test用于计算一个条件表达式的值,经常在条件语句和循环语句中用来判断某些条件是否满足,可以使用很多shell的内部操作符。
11、字符串操作符
常用字符串属性条件判断 | |
string_1=string_2 | 如果string_1和string_2两个字符串相等则返回真,否则返回假; |
string_1!= string_2 | 如果string_1和string_2两个字符串不相等则返回真,否则返回假; |
-z string | 如果字符串string的长度为0则返回真,否则返回假; |
-n string | 如果字符串string长度不为0则返回真,否则返回假; |
string | 如果字符串string非空返回真,否则返回假。 |
#!?bin/bash
string_1=a string_2=b
test string_1 = string_2
echo $?
运行应该返回 1 。
12、整数操作符:计算整数表达式
常用的整数关系条件判断 | |
mum_1 –eq num_2 | 如果num_1和num_2相等则返回真,否则返回假; |
mum_1 –ne num_2 | 如果num_1不等于num_2则返回真,否则返回假; |
mum_1 –gt num_2 | 如果num_1大于num_2则返回真,否则返回假; |
mum_1 –lt num_2 | 如果num_1小于num_2则返回真,否则返回假; |
mum_1 –le num_2 | 如果num_1小于等于num_2则返回真,否则返回假; |
mum_1 –ge num_2 | 如果num_1大于等于num_2则返回真,否则返回假; |
#!/bin/bash
n1=20
n2=30
[ $n1 -eq $n2 ]
echo $?
[ $n1 -gt $n2 ]
echo $?
输出结果分别为 1 和 1
13、文件操作符
常用的文件属性条件判断 | |
-f fn | 如果fn存在且fn为普通文件则返回真,否则返回假。 |
-b fn | 如果fn存在且fn为块设备则返回真,否则返回假。 |
-e fn | 如果fn存在则返回真,否则返回假。 |
-d fn | 如果fn 存在且fn为目录则返回真,否则返回假。 |
-r fn | 如果fn存在且fn可读则返回真,否则返回假。 |
-w fn | 如果fn存在且fn可写则返回真,否则返回假。 |
-x fn | 如果fn存在且fn可执行则返回真,否则返回假。 |
-O fn | 如果fn存在且被当前用户拥有则返回真,否则返回假。 |
-L fn | 如果fn存在且fn为符号链接则返回真,否则返回假。 |
14、逻辑操作符
常用的逻辑操作符属性条件判断 | |
- a | (逻辑与)格式为”condition1 –a condition2”,若两个条件都为真,则结果为真 |
- o | (逻辑或):格式为”condition1 –o condition2”,若两个条件中有一个为真,则结果为真 |
! | (逻辑非):格式为”!condition”.当condition为真时,结果为假,当condition为假时,结果为真 |
15、shell中的引号:
1、单引号(‘):单引号括起来的字符(包括特殊字符)都作为普通字符。
2、双引号:由双引号括起来的字符,除$、\、’、和”这几个字符仍是特殊字符并保留其特殊功能,其余字符仍作为普通字符对待。
[注]:
$:用其后指定的变量值来代替这个变量
\:转义字符,其后面的字符为普通字符。通常需要加\的只有4个字符, $、\、’、和”。
对于”号,如果没加\,则与前一个“号匹配
3、反引号(`): 与键盘上的~同一个键上的符号。反引号括起来的字符串被shell解释为命令行,执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号部分。
16、通配符
*:代表任何字符串。例:f*匹配以f打头的任意字符串。
文件名前的圆点(.)和路径名中的的斜线(/)必须显式匹配。
例:”*”不能匹配.file,只有”.*”才可以匹配.file。
?:代表任何单个字符。
[ ]:代表指定的一个字符范围,只要文件名中[ ]位置处的字符在[ ]中指定的范围之内,那么这个文件名就与这个模式串匹配。
例:f[a-d] 或f[abcd]
符号类型 | 说明 |
* | 当前目录下的所有文件的名称 |
*Text | 当前目录下所有文件中包含Text的文件 |
[ab-dm]* | 当前目录下所有以a、b、c、d、m开头的文件的名称 |
[ab-dm]? | 当前目录下所有以a、b、c、d、m开头的且后面只跟 一个字符的文件的名称 |
/usr/bin/?? | 目录/usr/bin下的所有名称为两个字符的文件的名称 |
18、exit 退出程序执行。正常退出,返回值为0;非0表示非正常退出。例如:exit 0
19、awk命令文件内容提取 例如:检测提取root用户 awk -F: '$3==0 {print $1}' /etc/passwd 其中-F更改分隔符
20、sh执行脚本的权限:对脚本有-r的权限,并且对脚本所在目录有-rx权限。
直接执行脚本的权限:对脚本有-rx的权限,并且对脚本所在目录有-rx权限。
相关文章推荐
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- 【转】shell学习笔记(三)——引用变量、内部变量、条件测试、字符串比较、整数比较等
- 第五讲 条件测试操作、字符串比较、逻辑测试
- 字符串测试/文件测试/整数比较/逻辑操作符
- 测试(整数、字符串比较;文件测试)
- bash脚本编程之(3/4)条件判断、算符运算、整数测试、文件测试、特殊变量等笔记
- linux命令中bash常用的条件测试:整数测试eq,文件测试-e,字符串测试==,组合测试
- 比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- 整数比较 文件测试 与或非 特殊变量
- 第3章 shell结构化命令------------(shell的数值比较、shell的字符串比较、shell的文件比较、shell的条件组合操作)
- Java中,比较两个字符串引用变量是否相等
- shell脚本编程之条件判断,算术运算,整数测试及特殊变量
- python文件读写操作与linux shell变量命令交互执行
- bash --文件测试、字符串比较
- C语言学习2:sizeof ,数据类型,scanf,算式操作,赋值与比较操作,逻辑操作,位的操作,条件运算符,特异赋值结果,强制转换,使用变量要注意的
- shell编程---文件测试及特殊变量
- python3 常用模块(时间、os路径及文件操作、字符串比较,文件内容比较等模块)