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,简单的shell脚本编写边学边用

Linux基础之Linux里的循环语句

Shell脚本基础知识

Linux操作系统基础解析之——Bash(Shell)基础知识

Linux操作系统基础解析之——Bash(Shell)基础知识

Linux操作系统基础解析之——Bash(Shell)基础知识