码迷,mamicode.com
首页 > 系统相关 > 详细

Linux操作系统基础操作之shell脚本编写

时间:2019-01-10 17:43:17      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:文本处理   linux操作   rip   tmp   脚本编写   ssi   功能   inux   command   

Shell脚本程序是Shell命令语句的集合,用于实现特定的功能;
Shell脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑;
Shell脚本程序是由Shell环境解释执行的,不需要在执行前进行编译;
执行Shell程序时,Shell脚本文件需要具有可执行(x)的属性

技术分享图片

第一行要说明脚本使用的 shell 名称
接着是脚本功能描述、版本信息等内容
每个功能程序段前做注释说明

exit命令

exit 被用来结束一个脚本

成功的命令返回0, 而不成功的命令返回非零值, 非零值通常都被解释成一个错误码 

脚本中的函数和脚本本身也会返回退出状态码 ,在脚本中,“ exit nnn”命令将会把 nnn退出码传递给shell( nnn必须是十进制数, 范围必须是0 - 255)

 脚本执行方法

方法一:将 shell.sh 加上可读与可执行 (rx) 权限,然后就能够以 ./shell.sh 來执行了(即以绝对路径来执行

技术分享图片

方法二:在PATH加入脚本路径,可直接执行

技术分享图片

方法三:以 sh shell.sh 的方式直接执行即可

技术分享图片

方法四:source(.) + 脚本文件名(文件无需可执行权限) 

技术分享图片

echo命令

echo [-ne][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
常用选项:
-n 不需要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\n 换行且光标移至行首;
\t 插入tab;

技术分享图片

read命令

read [-p 提示字符串 键盘输入信息] [-t 等待秒数] 变量名    用户与脚本的交互
eg: [root @swh swh] read name
mytest #该行是用户输入的
[root @swh swh] echo $name
mytest #该行是系统响应的

 技术分享图片

脚本数据类型定义

字符

字符串

整数

数组结构     使用方法为${array[index]},下标index从0开始计数

类型声明指令declare
格式:declare [-iafrx] var
i、a、f、r、x分别用来声明整数、数组、函数、只读类型变量和环境变量。
只读型变量不可修改和删除
默认情况下是字符和字符串类型
脚本语言是弱类型语言,使用变量的时候无需首先声明其类型。

数值运算

var=$(( 运算内容)) [+、-、*、/、%]
declare -i total=$firstnu*$secnu

技术分享图片

条件测试

条件测试使用方式:
test expression 或
[□expression□] 或
[[□expression□]]
说明:“test”和”[“ 均为命令,”[[”是关键字,上面的形式中的□为空格,必须

ls /tmp/tt && echo “exist” || echo “not exist”
ls /tmp/tt || echo “not exist” &&echo “exist”
command1 && command2 || command3
如果1可以执行,就执行2,若1不可以执行,就执行3

test命令

特定参数实现对文件或数据的多种判断操作  返回true或false

eg: test -e /tmp/test.txt && echo “exist” || echo “not exist”
判断文件test.txt是否存在并告知用户
test -r godisagirl -a -x godisagirl
当godisagirl的权限为可读可执行时返回true

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

技术分享图片

判断符号[ ]

判断符号[ ]也可以实现上述功能,在[ ]中出现的内容就是test指令的各个选项
在[ ]中的每个组成部分间必须用空格分隔
eg: [root @swh swh]# [ -n $PATH ]
这里每个组件间都有空格,用来判断变量$PATH是否为空
[ ]之间可以用&&或|| 结合
name=“ccyx”
[ $name == “cyx”]
[ “$name” == “cyx”]

技术分享图片

技术分享图片

条件判断

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

技术分享图片

函数

技术分享图片

技术分享图片

循环

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

break与continue命令

break命令用来跳出循环
continue命令只会跳过本次循环, 忽略本次循环剩余的代码, 进入循环的下一次迭代
break命令可以带一个参数. 一个不带参数的break命令只能退出最内层的循环, 而break N可以退出N层循环

 调试脚本

利用sh指令
sh [-nvx] scripts.sh
-n:查询并指出语法错误并不执行
-v:执行脚本前显示脚本内容至屏幕
-x:只将用到的脚本内容显示出来

 

Linux操作系统基础操作之shell脚本编写

标签:文本处理   linux操作   rip   tmp   脚本编写   ssi   功能   inux   command   

原文地址:https://www.cnblogs.com/zgmzbhqa/p/10251103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!