文档章节

031-shell基础

侠客行之石头
 侠客行之石头
发布于 2017/08/25 10:23
字数 643
阅读 57
收藏 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

 

 

© 著作权归作者所有

共有 人打赏支持
侠客行之石头
粉丝 9
博文 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
kali之flash挂马

root@localhost:~# msfconsol msf > show #寻求帮助 msf > use windows/shell/bindtcp# msf payload(bindtcp) > set RHOST 192.168.48.100 RHOST => 192.168.48.100 msf payload(bindtcp) > ......

周小玉
2017/07/04
0
0
关于cassandra权限问题

INFO [main] 2012-04-17 11:34:28,937 CLibrary.java (line 61) JNA not found. Native methods will be disabled. INFO [main] 2012-04-17 11:34:28,937 DatabaseDescriptor.java (line 116......

zhoujy
2012/04/17
735
4

没有更多内容

加载失败,请刷新页面

加载更多

牛津词典 2018 年度词汇 ——「有毒」!

简评:本文并没有「标题党」,牛津词典公布的 2018 年度词汇就是 Toxic. 意为「有毒的」。 2018 was toxic. Toxic 这个词是什么意思呢? 牛津词典(Oxford Dictionaries)在 Word of the Da...

极光推送
17分钟前
1
0
浅谈Service Mesh体系中的Envoy

https://blog.csdn.net/yunqiinsight/article/details/81019255

易野
26分钟前
1
0
嵌入式应用选择合适的微控制器

准备所需硬件接口列表 使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微控制器中有两种常见的接口类型需要列出。第一种是通信接口,这些是外围设备,如USB,S...

linuxCool
33分钟前
3
0
Group by使用

概述 GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。 GROUP BY必须得配合...

小橙子的曼曼
45分钟前
4
0
机械臂写中文

Make Me a Hanzi https://www.skishore.me/makemeahanzi/ 使用uArm Swift Pro机械臂写中文-毛笔字 https://github.com/makelove/Robot_Arm_Write_Chinese...

itfanr
56分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部