shell脚本基础知识一

本文详细介绍了Shell脚本的基础知识,包括shell的定义、脚本的作用,以及在Linux系统运维中的重要性。内容涵盖脚本创建与执行、变量、条件测试与比较,特别是深入讲解了if和case条件语句的语法与实战应用。通过实例展示了如何监控MySQL服务状态,以及使用case语句管理nginx服务。
摘要由CSDN通过智能技术生成

1  shell脚本基础知识

1.1  目录

  • shell简介
    • 什么是shell
    • 什么是shell脚本
    • shell脚本在linux系统运维工作中的地位
  • shell脚本的建立和执行
    • shell脚本的建立
    • shell脚本的执行
    • shell脚本开发的基本规范及习惯
  • shell脚本变量
    • 什么是变量
    • 环境变量
    • 普通变量
    • shell中的特殊位置参数变量
    • 特殊进程中的状态变量
  • shell脚本的条件测试与比较
    • 条件测试方法
    • test和[]
    • 文件测试
    • 字符串测试
    • 整数测试
    • 逻辑测试
  • if条件语句及实战
    • if条件语句语法
    • if条件语句实战
  • case条件语句及实战
    • case条件语句语法
    • case条件语句实战

1.2  shell简介

1.2.1  什么是shell

shell是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

1.2.2  什么是shell脚本

Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。

1.2.3  shell脚本在linux系统运维工作中的地位

Shell脚本语言很适合用于处理纯文本类型的数据,而Linux系统中几乎所有的配置文件、日志文件(如NFS、Rsync、Httpd、Nginx、LVS、MySQL等),以及绝大多数的启动文件都是纯文本类型的文件。因此,学好Shell脚本语言,就可以利用它在Linux系统中发挥巨大的作用。_auto_0

1.3  shell脚本的建立和执行

1.3.1  shell脚本的建立

shell脚本在编辑器vi(vim)中编写 1.脚本开头

#!/bin/bash或#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序 2.脚本注释 以#开头的行表示注释_auto_0由上图可见,sh为bash的软链接,大多数情况下,在脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但是更规范的写法是在脚本开头使用“#!/bin/bash”

1.3.2  shell脚本的执行

通常采用以下几种方法:
1.bash 脚本文件名或sh 脚本文件名;注意,脚本文件名需为绝对路径,如不是,则需进入文件所在目录后再执行
2.路径/脚本文件名 或./脚本文件名;注意,需先加可执行权限,使用chmod +x 脚本文件名
3.source 脚本文件名或. 脚本文件名;
前两种方法的执行方式其实是一样的,都是在当前父进程下的子进程中执行,子进程完成后,子进程中的各项变量或操作将会结束而不会传回到父进程中.
具体的区别可见下图:_auto_1

1.3.3  shell脚本开发的基本规范及习惯

脚本编写规范
1.第一行指定脚本解释器

#!/bin/bash或#!/bin/sh
2.脚本开头加版本和版权信息_auto_2

知识补充,添加版本信息的方法:
vim .~/vimrc
autocmd BufNewFile .py,.cc,.sh,.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == "sh"
call setline(1,"#!/bin/bash")
call setline(2,"#Author:ZhangMiaomiao")
call setline(3,"#http://blog.csdn.net/moledyzhang")
call setline(4,"#Time:".strftime("%F %T"))
call setline(5,"#Name:".expand("%"))
call setline(6,"#Version:V1.0")
call setline(7,"#Description:")
endif
endfunc

3.尽量不用中文(不限于注释)
4.为便于标识,以.sh为扩展名
5.一行一条命令;若一行多个命令,用分号(;)分割;长命令可以使用反斜线字符(\)
6.放在固定路径下,文件名尽量描述清楚脚本的功能
良好的习惯:
1.成对符号,如‘’,“”,``,(),{},[]等尽量一次性写出来
2.[的右端和]的左端留空格
3.对于流程控制语句,应一次性写完,如
if ;then
内容
fi
再如:
for
do
内容
done
4.代码缩进
5.所有的单引号、双引号和反单引号等其他标点符号都需要在英文状态下输入
6.变量赋值时等号=左右两面不留空格

1.4  shell脚本变量

1.4.1  什么是变量

变量就是暂时存放数据的地方及数据标记,所存储的数据存放在内容空间当中,通过正确地调用内存空间中的变量的名字就可以取出与变量对应的数据。 使用变量的好处是使程序开发更加方便

1.4.2  变量类型

全局变量(环境变量):可以在创建的它们的shell及其派生出来的任意子进程shell中使用,环境变量又可以分为自定义环境变量和bash内置的环境变量,(环境变量一般用于定义shell运行环境,保证shell命令的正确执行.) 局部变量(普通变量):只能在创建他的shell函数或脚本中进行操作调用

1.4.3  环境变量

1.4.4  普通变量

1.变量的命名 变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
2.变量的赋值
变量名=值
变量名='值'
变量名="值"
变量名=`值`
单引号:所有转移符全部关闭,完整的反应括号中的内容

双引号:部分转义符关闭,但某些则保留(如:$)

反引号:反引号内荣作为一个系统命令并执行

3.变量的调用

1) $变量名

2) ${变量名}

1.4.5  shell中的特殊位置参数变量

_auto_0

1.4.6  特殊进程中的状态变量

_auto_2

1.5  shell脚本的条件测试与比较

1.5.1  条件测试方法

通常在脚本的编写过程中需要进行各种测试,然后根据测试结果执行不同的操作,有时也会与if等条件语句结合来完成测试 条件测试常用的语法_auto_3[[]]中可以使用通配符进行匹配 (())常用于整数运算

补充:逻辑操作符&&合||
例:
rm -rf / || echo "me is loser" (||的含义)
当rm -rf /执行不成功时,就输出me is loser
rm -rf / && echo "快跑路吧兄弟"
当rm -rf /执行成功时,就输出快跑路吧兄弟

1.5.2  文件测试

常见的文件测试操作符如下:_auto_4

1.5.3  字符串测试

常见的字符串测试操作符如下:_auto_5

1.5.4  整数测试

常见的整数测试操作符如下:_auto_6

1.5.5  逻辑测试

常见的逻辑测试操作符如下:_auto_7

1.6  if条件语句及实战

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: b'shell脚本基础知识'是指对b'shell脚本'进行基础掌握的知识,包括b'shell脚本'的语法、变量、流程控制、函数等基础内容。了解b'shell脚本基础知识,可以帮助用户更好地编写和运行b'shell脚本',提高工作效率和准确性。 ### 回答2: Shell是一种可以执行Linux命令的脚本语言,是Linux系统中必不可少的一部分。Shell脚本是一种文本文件,其扩展名通常为.sh或.bash。Shell脚本可以编写一些自动化的任务,使得Linux操作更加方便和高效。 Shell脚本基础知识包括以下内容: 1. Shell脚本的创建和执行 Shell脚本可以使用vi或其他文本编辑器创建,创建完成后用chmod命令设置为可执行权限。执行脚本有两种方式:直接输入脚本名,或用bash命令执行脚本。例如,执行名为test.sh的脚本,可用以下两种方式: ./test.sh bash test.sh 2. Shebang行 Shell脚本的第一行需要写上Shebang行,指定解释器的路径。在Linux系统中,默认的解释器为/bin/bash。因此,Shebang行通常是: #!/bin/bash 3. 变量和环境变量 Shell脚本中使用的变量需要先定义,然后才能使用。定义变量的方式为: 变量名=变量值 变量名前面必须添加美元符号$,才能获取到变量的值。可以使用echo命令输出变量值,例如: name="tom" echo $name 环境变量是一种全局变量,可以在Shell脚本中使用。Linux系统中有很多预定义的环境变量,例如: $HOME:当前用户的家目录。 $PATH:程序搜索路径。 $USER:当前登录用户的用户名。 4. 控制流语句和函数 Shell脚本支持各种控制流语句,例如if、for、while等。函数的定义和使用也和其他编程语言类似,例如: function_name(){ commands } function_name 5. 输入和输出重定向 在Shell脚本中,可以使用重定向符号>和<来重定向输入和输出。例如,将输出重定向到文件中,可以使用: echo "hello" > output.txt 将输入重定向到文件中,可以使用: read input_var < input.txt Shell脚本基础知识是编写自动化任务的基础,了解和掌握这些知识可以使得Shell脚本更加高效和便捷。 ### 回答3: Shell脚本是一个用来编写命令行脚本脚本语言。脚本语言和编译型语言不同,它的代码不需要被编译成可执行文件,而是直接解释执行。 Shell脚本的特点是读写文本文件,执行系统命令。在Unix/Linux操作系统中,Shell是最基本的界面,与其他操作系统类似,用户可以在Shell界面下输入各种命令来控制和操作计算机系统。 Shell脚本基础知识包括: 1. Shell脚本的文件格式,一般以.sh作为文件扩展名,脚本的执行需要给定执行权限(chmod +x filename.sh)。 2. 开始行(Shebang):开头的两个字符#!(Shebang)指定执行本脚本文件所使用的Shell解释器。一般来说,使用Bash解释器,开始行应该这样写:#!/bin/bash 3. 变量:在Shell脚本中,用$符号表示,变量名和等号之间不能有空格。例如:var=123 4. 数组:在Shell脚本中,用小括号()表示,使用花括号{}和下标来引用数组中的元素。例如:arr=(1 2 3) echo ${arr[1]} 5. 流程控制语句:if、while、case、for等,用于实现分支和循环等控制流程。 6. 命令行参数:在执行脚本时从命令行传入,用$符号表示。例如:在命令行执行:./test.sh arg1 arg2,则脚本中可以用$1表示arg1,$2表示arg2。 7. 读取键盘输入:使用read命令,例如:read name,表示从键盘读取一行文本并存储到变量name中。 8. 函数:用于将一些重复的命令封装起来,实现代码复用。例如: function test(){ echo "hello world"}。 Shell脚本是Unix/Linux操作系统的基础,掌握Shell脚本基础知识是很重要的。在实践中不断熟练掌握Shell脚本,可以提高个人的工作效率和工作质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值