shell基础.docx

上传人:b****4 文档编号:24848659 上传时间:2023-06-02 格式:DOCX 页数:8 大小:16.02KB
下载 相关 举报
shell基础.docx_第1页
第1页 / 共8页
shell基础.docx_第2页
第2页 / 共8页
shell基础.docx_第3页
第3页 / 共8页
shell基础.docx_第4页
第4页 / 共8页
shell基础.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

shell基础.docx

《shell基础.docx》由会员分享,可在线阅读,更多相关《shell基础.docx(8页珍藏版)》请在冰豆网上搜索。

shell基础.docx

shell基础

1.shell文件头

因为shell有多种,所以编写shell要注明文件头:

#!

/bin/sh

c-shell

z-shell

2.注释

“#”代表注释

如:

#这是一行注释

3.变量定义

3.1.直接赋值

name=elson

3.2.使用命令返回值赋值

例如:

用pwd命令获取当前路径,并赋值

方式1:

pathNow=`pwd`

方式2:

pathNow=$(pwd)

3.3.用已有的变量赋值到新变量

pathNow2=$pathNow

提示1:

变量赋值时等号左右不允许有空格

例如:

name=elson这是错误

为什么?

这是因为"name=elson"shell以为name是一条命令,后跟两个参数"=elson"

提示2:

定义变量时不需要$,但读取时需要

例如:

赋值name=elson输出echo$name

ps:

1、写得时候不加$,读的时候加上$

2、赋值变量时,不能在“=”左边加上空格

3、输出不存在变量时,只输出空值,不报错

4、单引号不解析变量

5、在字符串中,建议变量加上{}=>${name}

4.变量输出

name=elson

echomynameis$name#mynameiselson

echomynameis${name}#mynameiselson推荐方式

echomynameis'$name'#mynameis$name这一个得注意!

echomynameis"$name"#mynameiselson

为什么推荐${name}这种方式呢?

首先语义化更明确,看shell时更容易明确哪些是变量,另外还能防止一些字符串连接的错误

例如:

name=elson

echomynameis$namewu#输出为:

mynameis空白,因为shell以为$namewu是一个变量

echomynameis${name}wu#输出为:

mynameiselsonwu正确,能区分开变量名和字符串连接

5.变量释放

unsetname

echo$name#不会报错,只输出空

6.读取输入变量

6.1.方式1:

readfirstsecondthird

echo"Uinputstring1:

$first"

echo"Uinputstring2:

$second"

echo"Uinputstring3:

$third"

6.2.方式2:

read-p"Uinputstring1:

"first

echo"Uinputstring1:

$first"

6.3.方式3:

echo"Uinputstring1:

$1"

提示:

字符串连接,不需要任何连接符

7.数学计算

a=10

b=20

c=30

7.1.方式1.

value1=`expr$a+$b+$c`

echo$value1#输出60

value1=`expr$c\*$a`

echo$value1#输出300

7.2.方式2.

echo$(($a+$b))#输出30

8.特殊变量

8.1.当前命令$0或${0}

echo"Thecommandis${0}"

8.2.当前命令接受的参数个数$#或${#}

echo"Thecommandisfirst${1},thesecondis${2}total${#}"

9.if语句

利用if编写一个只允许给定一个参数的shell文件

vimif01.sh

内容:

#!

/bin/sh

if[$#-eq0]

then

echo"Toofew"

exit1

elif[$#-gt1]

then

echo"Toomany"

exit1

else

echo"well"

fi

保存并退出,赋予if01.sh文件可执行权限

chmod+x./if01.sh

分别三种情况执行:

./if01.sh#输出Toofew

./if01.shelson#输出well

./if01.shelson24#输出Toomany

10.for语句

fordayinSaturdayTuesdaySunday

do

echo"Thedayis:

${day}"

done

11.case语句

echo"Pleaseselect..."

echo"A)Copy"

echo"B)Delete"

echo"C)Backup"

readop

case$opinc

A)

echo"selectA"

;;

B)

echo"selectB"

;;

C)

echo"selectC"

;;

*)

echo"invalideselect"

esac

12.while语句

12.1.代码1

vimwhile02.sh

#!

/bin/sh

num=3

while[$num-gt0]

do

echo$num

num=`expr$num+1`

done

12.2.代码2,特殊的shift

vimwhile02.sh

#!

/bin/sh

num=1

while[$#-gt0]

do

echo'$num='${num}',$#='$#',$1='${1}

num=`expr$num+1`

shift#参数列表往左移一位

done

./while02.shdavidelsonlamson

13.1.函数定义

#example1elsonlamson写在函数会报错,因为函数并未定义

example1()

{

name1=david

echo'$name='${name1}

echo'$arg1='${1}

echo'$arg2='${2}

}

调用函数

example1elsonlamson

14exit

exit0:

完全退出

exit1:

退出本程序,只退出执行中的shell文件

15需求1:

写出apache启用程序,要求包括启动、停止、重启

apache.shstart

apache.shrestart

apache.shstop

要包括安全性

apache.shsky->要报错

用函数去实现

16需求2:

写出mysql数据库备份程序,并定时执行

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1