文档章节

031-shell基础

侠客行之石头
 侠客行之石头
发布于 2017/08/25 10:23
字数 643
阅读 55
收藏 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
博文 180
码字总数 56156
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

Linux就该这么学
25分钟前
0
0
图像显示深入学习一:Activity启动过程

一个月左右写了图像显示深入学习之文章开篇文章表明了自己近期的计划,前半年重新学习了opengl es,c++以及Linux的一些知识,觉得是时候开始看图像这一块的源码了,边看边补缺补漏吧。 作为该...

JerryLin123
48分钟前
1
0
给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
今天
1
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
100
0
heartbeat 资源

drbd+apache+heartbeat : http://blog.51cto.com/11838039/1827901 heartbeat双机热备的架设 : http://blog.51cto.com/11838039/1827560 对heaetbeat的深一步认识 : http://blog.51cto.co......

寰宇01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部