Shell编程
2016-04-30 15:36
399 查看
简介:
Shell 是一种交互式编程接口,也是一种命令解释语言,还是一种命令语言解释器。shell有Bourne Shell(简称B)、Korn Shell、C Shell 三种,使用最多的是B Shell。shell脚本头可以使用#!/bin/sh说明脚本使用哪种shell执行。#!表示使用哪一种解释器执行当前文本/bin/sh表示使用B shell解释器。shell的注释是用#开头的,后面接注释文字。
环境变量
shell用户环境变量是每一个用户定义在.profile或者.bash_profile中生效的变量。环境变量的定义和导出的两种格式
1、name=value;export name
2、name=value
export name
unset命令可以删除环境变量,如unset USERNAME 是删除USERNAME变量。
Shell的符号、变量及运行
*:匹配0个或者多个字符的串?:匹配单个字符
[]:匹配字符范围或者列表
| : 管道命令,左边的输出作为右边的输入
# : 传递命令Shell的命令序号# : 传递命令Shell的命令序号
-:在shell启动或使用set命令是提供选项
?:上一条命令执行后返回值两个美元符:shell的进程号 ?: 上一条命令执行后返回值
两个美元符: shell的进程号
! :上一个进程的进程号
@:所有参数,每个都是用双引号引起 @:所有参数,每个都是用双引号引起
* : 所有参数,用一个双引号引起的整体
n:位置参数值,n表示位置 n : 位置参数值,n表示位置
0 :当前的shell名
$ : 引用某个变量
# :注释符号
& : 后台命令
&& :与
|| : 或
!:非
;:在一个命令行中依次执行各个命令
“…”:普通字符串
双 ` : 命令替代
~ : 主目录
. : 执行命令
..:上级目录
[]:内置表达式,计算算是表达式的值,相当于test
{}:用于封装函数
\:表示转移字符
Shell变量特点
一、
1、无需定义,可直接使用2、shell大小写敏感
3、$为保留字符,变量被其他变量引用时前面加美元符
4、变量赋值等号前后不能加空格
5、赋值语句右边没有信息,为一个空字符串。
6、Shell只有两种变量类型,整型数字和字符串
7、如果一个变量含有空格、制表位、换行符,用双引号引起不然报错
8、字符串左右应该加双引号
9、Shell内置9个位置变量1-9
二、引用变量的三种方法
1、使用双引号引用变量2、使用大括号引用变量
3、直接引用
三、变量赋值
1、直接赋值user=meng
null=
number=12345
2、变量赋值
var1=$user
3、read读入
read var1 var2
4、参数置换位置方式
变量,−字符串非空,返回变量,否则字符串 {变量,-字符串} 非空,返回变量,否则字符串
{变量,+字符串}非空,返回字符串,否则空值
变量,=字符串非空,返回变量,否则字符串,同时变量被赋值为字符串 {变量,=字符串}非空,返回变量,否则字符串,同时变量被赋值为字符串
{变量,?字符串}非空,返回变量值,否则返回报错。
四、变量移位
shift 让位置参数左移一位。五、条件测试
使用test命令([]的功能一样)4种:字符串测试、数值测试、逻辑测试、文件属性测试。
字符串测试
-z s1 长度为0 真
-n s1 长度大于0 真
s1 不是空字符 真
s1 = s2 相等 真
s1 != s2 不相等 真
s1 < s2
s1 > s2
数值测试
n1 -eq n2 相等
n1 -ne n2 不相等
n1 -lt n2 小于
n1 -le n2 小于等于
n1 -gt n2 大于
n1 -ge n2 大于等于
逻辑测试
! 与
-a 或
-o 非
()优先
权限测试:
-r 可读
-w 可写
-x 可执行
-f 是否普通文件
-d 文件是否是目录文件
-p 文件是否命名的FIFO文件
-b 是否文件块
-c 是否是字符输入设备
-s 文件长度是否大于
六、控制结构
if语句if 测试条件1
then命令或命令表
elif测试条件2
then命令或命令表
else命令或命令表
fi
case语句
以;;两个分隔号进行结束。
case word in
pattern 1) 命令表1;;
pattern 2) 命令表2;;
…
*) 缺省命令表;;
esac
while语句
while 测试条件
do
命令表
done
until语句
untill 测试条件
do
命令表
done
for语句
for 变量名 in 循环列表
do
命令表
done
跳转语句
1、break
使用 : break
表示跳出n层,默认是1。
2、continue
使用 : continue
表示跳出n层,默认是1。
3、exit
数组
数组操作的取值的一般方式:
${数组名[下标值]}
对应的赋值的一般方式:
1、数组名[下标值]=值
2、数组名={value1,value2,value3……}
函数
function 函数名()
{
语句
}
参数传递方法:
1、变量直接传递:已经有的变量
2、位置参数法:如show是一个函数 show $a
相关文章推荐
- linux Shell脚本编程入门
- Linux-Shell之比较和测试
- SWT编程基础-Display和Shell
- Shell编程入门总结(三)
- shell读取文件每行,并执行命令
- Bash 下的快捷操作
- 03- Shell脚本学习--字符串和数组
- Mac下ProxyChains Tor实现shell代理,隐藏自己的ssh登陆ip
- Linux shell 统计访问日志
- bad interpreter: No such file or directory问题
- Shell编程入门总结(二)
- shell脚本
- Linux中的shell
- Linux shell中的I/O重定向相关(转)
- Xshell和Xftp的安装与使用教程
- Xshell使用
- IDC生产环境检测IP是否在用的Shell脚本
- Windows的cmd终端连接android手机运行adb shell脚本命令
- -bash: pod: command not found
- 关于node.js配置 Git Bash中node-v 显示command not found