Linux shell脚本编程基础

一、脚本生效

1. 方法一

把脚本路径写入$PATH变量。

2. 方法二

带上路径执行,需要执行权限。

3. 方法三

bash

bash后跟上脚本,该方法脚本不需要执行权限也能运行。

4. 方法四

| bash

读入脚本内容,通过管道符交给bash执行。当前主机远程调用其他主机的脚本。

 

 

二、基本结构

1. 声明shell类型

#!/bin/bash

2. 变量

3. 函数

4. 主程序

 

 

三、变量

在编写脚本时,如果使用了变量,使用完毕后要使用uset删除变量。因为程序运行期间,如果不人为删除变量,变量将不会在内存中释放空间。

把命令赋值给变量,如果使用echo,只会返回命令本身,不会返回命令结果,因为echo只会把变量的赋值当成字符串处理。

1. 局部变量

1.1 特性

(1) 如果把文本内容当作变量赋值,echo $执行时,如果不带上双引号,内容会以一行显示;如果带上双引号,会保留原有文本格式。

(2) 变量1指向赋值1,变量2指向变量1,实际上变量2是指向赋值1。如果此时变量1指向赋值2,变量2仍指向赋值1。

(3) 局部变量不能在父进程和子进程之间传递。

 

2. 环境(全局变量)变量

2.1 特性

(1) 父进程的全局变量可以传给子进程使用,但子进程修改后不能传回给父进程。

(2) 如果命令能识别变量,变量前不需要加上$

 

 

四、逻辑运算

1. 短路与

cmd1 && cmd2; cmd3

如果cmd1为真,cmd2执行;如果cmd1为假,cmd2不执行,cmd3执行。

 

2. 短路或

cmd1 || cmd2; cmd3

如果cmd1为真,cmd2不执行,cmd3执行;如果cmd1为假,cmd2执行。

 

 

五、逻辑判断

变量在中括号时,要加上双引号,避免因变量为空导致语法错误。因为条件判断语句需要前后都有值才能做比较。

1. 括号

1.1 特性

大括号:不开启子shell,如果括号内有exit,会直接退出当前shell;

小括号:会开启子shell,如果括号内有exit,只会退出子shell。

如果在脚本中,要使用大括号,且最后要加上分号。

中括号:如果括号内有正则表达式,需要用两个中括号;如果括号内没有正则表达式,只需要一个中括号。

双中括号可以使用双等号匹配字符通配符。

 

 

六、赋值

read命令可以批量给多个变量赋值,但值需要用空格隔开,也可以用<读取文件中的内容进行赋值,也需要用空格隔开。

 

 

七、执行脚本

使用传统方式执行脚本文件,会先开启子进程,在子进程中执行脚本文件,不影响当前shell;

使用.source执行脚本文件,会直接在父进程中执行脚本文件,影响当前shell。

别名命令不能在脚本中运行。

 

 

八、bash展开命令行顺序

1. 把命令行分成单个命令词

2. 展开别名

3. 展开大括号的声明( {})

4. 展开波浪符声明( ~)

5. 命令替换$() 和 ``)

6. 再次把命令行分成命令词

7. 展开文件通配( *、 ?、 [abc]等等)

8. 准备I/0重导向( <、 >)

9. 运行命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux shell脚本编程是Unix/Linux系统中非常常用的一种编程技术,它利用Shell(Bash、Zsh等)语言编写一系列命令和控制结构,用于自动化执行任务或流程管理。以下是一些基本概念: 1. **命令行操作**:shell脚本从命令行接收输入,并执行一系列预定义的命令。这些命令可能涉及文件操作(如创建、复制、删除)、进程管理(启动、停止、切换)、环境变量设置等。 2. **变量**:Shell支持两种类型的变量,环境变量和局部变量。环境变量在整个脚本运行期间有效,而局部变量只在特定作用域内生效。 3. **条件语句**:if, elif, else结构用于基于特定条件执行不同的代码块。比如`if [ "$variable" == "value" ]; then ... fi`. 4. **循环**:常用的循环包括for (遍历数组/文件)、while(条件循环)和until(直到满足条件才结束)。 5. **函数**:shell脚本可以包含自定义函数,封装可重用的代码段,提高效率和可读性。 6. **管道(pipe)和重定向(redirect)**:通过管道将一个命令的输出作为另一个命令的输入,或重定向到文件,这是处理数据流的强大工具。 7. **错误处理**:使用`set -e`或`trap 'command' ERR`可以设置错误退出规则,使脚本更健壮。 8. **语法规范**:虽然Shell脚本不像编译型语言那样严谨,但良好的缩进、注释和命名习惯对于维护和理解脚本至关重要。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值