Linux操作系统基础操作之shell脚本编写
Posted 我的每日码园区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux操作系统基础操作之shell脚本编写相关的知识,希望对你有一定的参考价值。
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操作系统基础解析之——Bash(Shell)基础知识