文档章节

031-shell基础

侠客行之石头
 侠客行之石头
发布于 2017/08/25 10:23
字数 643
阅读 56
收藏 1

第一章      Shell 脚本

1.1定义

shell 是什么?shell是沟通内核和命令行的润滑剂

属于不需要解释的语言,即是编译型语言

那么python 和perl 都是解释型语言,执行效率更低

 

1.2  简单脚本

vim test.sh

#!/bin/bash  ##调用bash,用来解释一下这个脚本用什么解释器来解释

echo "Hello World !!"

!wq  ##强制退出菜单

 

1.3 变量在脚本中的运用

vim test.sh

#!/bin/bash

your_name="Carlton"

echo ${your_name}

{}的意思就是用来表示变量

 

1.4 特殊变量

$0 当前脚本的文件名

$n 传递给脚本或函数的参数。n 表示第几个参数

$# 传递给脚本或函数的参数个数

$* 传递给脚本或函数的所有参数

$$ 当前shell 进程ID,对于shell脚本,就是这些脚本所在进程的ID

$? 上个命令退出时候的状态

 

1.5 运算符号

a=10

b=20

carlton=$[$a + $b]

echo "a+b: $val"



if [ $a=$b ];

then  

echo "a is equal to b"

fi

 

if [ $a -lt $b ];

then

   echo "$a -lt $b: a is less than b"

else

   echo "$a -lt $b: b is not less than b"

fi

 



[ !false ]

[ $a -lt 20 -o $b -gt 100 ]

[ $a -lt 20 -a $b -gt 100 ]  均返回true

 

1.6 字符串运算符列表


 

if [ -z $a ]

then

  echo "-z $a : string length is zero"

else

  echo "-z $a : string length is not zero"

fi

z和n 是对立面

 

1.7 文件运算符号

 

第二章      if 条件判断

if 语句通过关系运算来判断表达式胡真假

if…fi

if..else..fi

if…elif…elif…fi

if…else…fi语句用于if两种结果分别执行什么样的命令。

写法:

if [ 条件 ]

 then

执行语句    如果if的条件为真

else

执行语句    如果if的条件为假

fi

 

if…elif…elif…if语句用于判断多个条件。

写法:

if [ 条件 ]

then

执行语句

elif  [ 条件 ]

then

执行语句

else

执行语句

fi

 

2.1 case 例子

case用于判断一个值的多种情况,不同的情况执行不同的命令

case 值 in

 值1

执行语句

 ;;

值2

;;

…

 esac

echo 'Input a number between 1 to 4'

echo 'Your number is:\c'

read aNum

case $aNum in

    1)  echo 'You select 1'

    ;;

    2)  echo 'You select 2'

    ;;

    3)  echo 'You select 3'

    ;;

    4)  echo 'You select 4'

    ;;

    *)  echo 'You do not select a number between 1 to 4'

    ;;

esac

 

2.2 while 循环语句

while循环用于不断执行一系列命令,也用于从文件中读取数据。

写法

while  命令

do

   执行语句

done

命令执行完毕,控制返回循环顶部,从头开始只到条件为假。

test=0

while [ $test -lt 5 ]

do

 test=$[ $test + 1 ]

 echo $test

done

 

 

© 著作权归作者所有

共有 人打赏支持
侠客行之石头
粉丝 8
博文 182
码字总数 57032
作品 0
深圳
运维
私信 提问
S5PV210开发 -- I2C 你知道多少?(二)

上一篇主要是介绍了下芯片手册 I2C 部分,都应该看些什么,以及上拉电阻取值和传输速率模式选择。 这一篇该来点程序了,首先以 AT24C02 (EEPROM)为基础介绍一下I2C设备驱动编程,然后以 MT...

qq_29350001
2017/12/12
0
0
[原创]Bash中的test,[,[[ 有什么区别

在Bash中,test, [, [[ 都可以用来对一个布尔表达式进行求值,比如: 一般情况下,三者的效果是一样的,但细节上存在差别 在大多数的Shell中, test和[ 是等价的(除了个别比较古老的Bourne Shel...

mj4738
2011/11/25
0
0
shell脚本监控(ping)主机是否存活

#!/bin/bash #http://wangjiatong.blog.51cto.com/ #create2016-11-22 ping_success(){ if ping -c 1 $IP >/dev/null; then echo -e "033[032m$IP ping issuccessful!!033[0m" continue fi }......

飞侠119
2016/11/22
0
0
ffmpeg接收RTSP摄像头为什么Size=0kb

命令如下: ffmpeg -i "rtsp://admin:admin@192.168.0.27/cam/realmonitor?channel=1&subtype=0" -c copy -f flv rtmp://192.168.0.51:1935/live/test 输出如下: libavutil 52. 31.100 / 5......

linzian888
2013/05/17
3.1K
1
Ant Design 2.8.2 发布,阿里前端设计语言&前端框架

Ant Design 2.8.2 发布了,Ant Design 是蚂蚁金服开发和正在使用的一套企业级的前端设计语言和基于 React 的前端框架实现。本次更新如下: 发布了新的 设计基础文档。 修复使用 Modal.confir...

局长
2017/03/20
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

方之熙博士被任命为RISC-V基金会中国顾问委员会主席,加速RISC-V ISA在中国的应用

中国顾问委员会将就RISC-V基金会的教育和应用推广战略提供指导 今天在中国乌镇举行的世界互联网大会(World Internet Conference)上,RISC-V基金会(RISC-V Foundation)宣布,半导体行业资深人...

whoisliang
8分钟前
0
0
为了用户体验,不要做浏览器兼容

读者看到文章标题也许会感到奇怪,按照通常的经验来说,为了用户体验应该做浏览器兼容,以便让不同的浏览器用户都能有好的体验,从而增加网站的流量,但是我认为做浏览器兼容属于同样的工作重...

Bob2100
8分钟前
0
0
分布式定时任务架构 (二) xxl-job二次开发实践

4个月前,公司有任务调度的需求,需要一周内完成,时间非常紧。 需求有三点: web界面编辑cron表达式,启动,停止任务 接入公司的rpc成本较低,公司有自研的rpc,研发人员希望共用同一套注解 ...

勇哥和你一起学技术
25分钟前
0
0
React和Redux的连接react-redux

通过Redux文档来了解react-redux,在一段时间的实践后准备翻一翻源代码,顺便做些相关的总结。我看的代码的npm版本为v4.0.0,也就是说使用的React版本是0.14.x。 react-redux提供两个关键模块...

前端攻城老湿
46分钟前
1
0
1、Mybatis连接池配置 和 Context.xml的配置

注意: (1)mybatis 3.2 之前 通过 set get 方法 获取相关属性。之后通过属性姓名获取相关关联。 (2)mybatis 映射 优先为 sql 语句中的别名与实体类的属性进行映射。 (3)jndi Java用于调...

KingFightingAn
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部