Linux学习笔记之(1):学习shell script

        shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理目的。

一.第一个script的编写与执行

执行命令的执行从上而下,从左而右的分析与执行;命令、参数间的多个空白会被忽略、空白行也被忽略、[tab]键视为空格键;如果读到一个符号,就尝试执行该行命令,内容太多,可以使用\[ENTER]来扩展到下一行;#可作为批注。

1.直接命令执行:需要rx权限./shell.sh

2.以bash进程执行:需要r权限bash shell.sh或sh shell.sh

直接执行和bash/sh执行,script是在子进程的bash内执行的,执行结束后,子进程内的各项变量或操作将会结束而不会传回到父进程中;利用source执行脚本,在父进程中执行

编写mkdir scripts;cd scripts   gedit sh01.sh

#!/bin/bash

#程序内容说明

PATH=/bin/:/sbin/...............

export PATH

echo -e "HelloWorld! \a \n"

exit 0

第一行#!/bin/bash声明这个script使用的shell名称

第三行主要环境变量声明,最后一行告知执行结果,可用echo $?查看结果

数值运算:var=$((运算内容))

二.善用判断式

1.利用test命令的测试功能:检测文件是否存在和其相关属性

2.利用判断符号[]:数据判断,中括号内每个组件都需要空格键来分割,括号内的变量最好以双引号括起来,常量以单或双括号括起来。

3.shell script的默认变量:$0执行脚本文件名,$1 $2...接受的参数,$#代表后接参数的个数,$@代表"$1","$2"...之意,每个变量是独立的,$*代表$1c$2c$3c$4,c为分割符,  默认空格键;shift:造成参数变量号码移位,shift后面可接数字,表示拿掉最前面的几个参数的意思

三.条件判断式

1.利用if...then

单层/简单条件判断式:

if [条件判断式] ; then

.....

fi

多个条件判断式时[]&&[]代表and,[] || []代表or,&&和||与程序的连续执行区别开

多重/复杂条件判断式:

if [  ] ;then

...

else

...

fi

if [  ] ; then

...

elif [  ] ; then

...

else

...

fi

2.利用case...esac判断

多个既定内容的判断:

case $变量名 in

"第一个变量内容")

 ;;

"第一个变量内容")

;;

*)

exit 1

;;

 esac

如/etc/init.d/syslog restart的重启

3.利用function功能

类似自定义执行的东西:function设置要写在程序的最前面

function fname () {

       程序段

}

function也拥有内置变量,$0$1$2....

四.循环(loop)

1.不定循环while do done,until do done

while [condition]

do

    程序段

done

condition成立时,进入循环

until [condition]

do

   程序段

done

condition成立时,终止循环

2.固定循环for...do..done

for var in con1 con2 con3

do

   程序段

done

知道循环几次

for  ((初始值;限制值;执行步长))

do

   程序段

done

五.shell script的追踪与调试

sh [-nvx] scripts.sh

-n:不要执行script,尽查询语法错误

-v:在执行script前,先将script内容输出到屏幕上

-x:将使用到的script内容显示到屏幕上,这是很有用的参数

shell script的学习,需要多看,多模仿并加以修改成自己的样式

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值