0 bash变量类型:
环境变量
本地变量(局部变量)
位置变量: $1, $2, ... 分别表示第一个参数,第二个参数....
特殊变量
$?: 上个命令执行结果状态码
$#:参数的个数
$*: 参数列表
$@:参数列表
1 变量赋值后引用:
${varname} 其中{}可以省略, 只要在使用时,不会引起混淆那么{}就可以省略
eg:
[root@h2sliver114 local]# name=zm [root@h2sliver114 local]# echo "hello ${name}s." 此时建议加上{}
2 具体变量类型介绍:
本地变量: set VARNAME=VALUE: 作用域为整个bash进程; 局部变量: local VARNAME=VALUE:作用域为当前代码段; 环境变量:作用域为当前shell进程及其子进程; export VARNAME “导出” 位置变量: $1, $2, ... 特殊变量: $?: 上一个命令的执行状态返回值; 程序执行,可能有两类返回值: 程序执行结果 程序状态返回代码(0-255) 0: 正确执行 1-255:错误执行,1,2,127系统预留;
3 查看当前shell中的环境变量:
printenv 这是习惯用到的
env
export
4 位置变量:
eg:
sh filetest.sh /etc/fstab /etc/inittab $1: /etc/fstab $2: /etc/inittab
5 shift使用:
shift 2 表示一次踢出去2个 获取踢出去的这两个中最后的那一个 默认是移动1个
使用案例:
#!/bin/sh # echo "the first param is: $1" shift echo "the second param is: $1" shift echo "the third param is: $1" 结果: [root@chinadaas109 zhoumingtest]# sh fortest.sh 1 2 3 the first param is: 1 the second param is: 2 the third param is: 3
6 变量赋初始值:
${parameter:-word}:如果parameter为空或未定义,则变量展开为“word”;否则,展开为parameter的值; 所谓展开就是直接打印出结果 ${parameter:+word}:如果parameter为空或未定义,不做任何操作;否则,则展开为“word”值; ${parameter:=word}:如果parameter为空或未定义,则变量展开为“word”,并将展开后的值赋值给parameter; ${parameter:offset} 获取从数组脚本offset开始到最后字符的数据 ${parameter:offset:length}:取子串,从offset处的后一个字符开始(角标从0开始计数),取lenth长的子串; 使用案例: [root@chinadaas11 ~]# a=${a:-2} [root@chinadaas11 ~]# echo $a 2 [root@chinadaas11 ~]# echo ${a:=30} 30 [root@chinadaas11 ~]# echo $a 30 [root@chinadaas11 ~]# a='hello world' [root@chinadaas11 ~]# echo ${a:1:4} ello [root@chinadaas11 ~]# echo ${a:1} ello world
7 脚本读取配置文件
一般在如下目录下: /etc/rc.d/init.d/服务脚本 服务脚本支持配置文件:/etc/sysconfig/服务脚本同名的配置文件 如何让脚本来使用配置文件: [root@chinadaas11 zm]# ll total 8 -rw-r--r-- 1 root root 10 Nov 2 14:48 a.conf -rw-r--r-- 1 root root 60 Nov 2 14:54 test.sh [root@chinadaas11 zm]# cat a.conf name='zm' [root@chinadaas11 zm]# cat test.sh #!/bin/bash # . /root/zm/a.conf ---> 等效于 source /root/zm/a.conf 在当前bash环境下读取并执行文件中的命令 [ -n $name ] && echo $name [root@chinadaas11 zm]# sh test.sh zm
相关推荐
Bash脚本是一种文本文件,其中包含了可执行的Shell命令。它允许你自动化日常任务,例如文件管理、系统监控、数据处理等。脚本的开头通常会声明其解释器,即`#!/bin/bash`,这告诉系统使用Bash来执行该脚本。 在Bash...
4. **简化脚本**:通过引入Python的模块和库,可以大大减少Bash脚本的复杂性,特别是处理文件操作、网络请求、数据解析等任务时。 5. **提高效率**:Python的性能通常优于Bash,特别是在处理大量数据或执行复杂计算...
`bash-yaml`是一个轻量级的Bash函数库,允许我们读取YAML文件并将其内容映射到Bash变量。 安装`bash-yaml`通常涉及克隆其GitHub仓库,例如`bash-yaml-master`,然后将库中的函数引入Bash脚本。要克隆仓库,可以使用...
这份"Bash-Beginners-Guide"是一个针对初学者的Linux bash脚本编程教程,旨在帮助新手快速掌握bash脚本的基本概念和用法。 1. **基础语法** - **变量**:在bash中,变量用于存储数据。例如,`NAME="John"`,然后...
9-11. 利用修改文件名,来转换图片格式 9-12. 模仿getopt 命令 9-13. 提取字符串的一种可选的方法 9-14. 使用参数替换和error messages 9-15. 参数替换和"usage"messages 9-16. 变量长度 9-17. 参数替换中的模式匹配 ...
《Advanced Bash-Scripting Guide》是一本专注于深入学习Bash脚本艺术的书籍,由Mendel Cooper撰写。这本书不仅适合初学者,也适合有一定经验的脚本编写者,提供了丰富的实例来帮助读者理解并掌握Bash脚本的高级概念...
* -f:禁止Bash读取配置文件 * -h:显示Bash的帮助信息 * -k:使得所有变量都被导出到环境变量中 * -m:启用job control功能 * -n:使得Bash不执行命令,只检查命令的语法是否正确 * -p:禁用Bash的POSIX mode * -t...
在Linux环境中,Bash(Bourne-Again SHell)是默认的Shell,它支持一系列内建命令和可扩展的脚本语言特性。`bashblog`就是这样一个脚本,通过巧妙地利用这些特性来实现其功能。 1. **下载**:`bashblog`可能包含了...
### Linux Bash脚本编程大全知识点概述 #### 一、引言 《Linux Bash脚本编程大全》是一本全面介绍Bash脚本编程的书籍,它不仅涵盖了Bash的基础知识,还包括了许多高级技巧以及Linux/UNIX操作系统相关的知识。本书...
10.3.1 Shell基础-Bash基本功能-历史命令与补全.mp4 10.3.2 Shell基础-Bash基本功能-别名与快捷键.mp4 10.3.3 Shell基础-Bash基本功能-输入输出...10.6.3 Shell基础-环境变量配置文件-其他配置文件和登录信息.mp4
最后,`dotfiles-custom-bash-zsh`这个文件可能是一个包含个人配置的dotfiles仓库,通常用于存储用户的所有配置文件,包括Bash和Zsh。Zsh是另一个流行的shell,拥有更多的内置功能和更丰富的插件系统。如果你打算...
脚本方式– 脚本执行方式,将 Bash 语句写在文本文件中,批量执行 --------------------------------------------------------- 脚本方式允许用户编写 Bash 语句,放在文本文件中,然后批量执行。 Bash 的执行方式...
在Bash脚本编程中,特殊变量是极其重要的组成部分,它们能够帮助开发者更好地控制脚本的行为并提升程序的灵活性。本文将详细介绍Bash中的特殊变量及其用法,帮助读者深入理解这些变量如何在脚本中发挥作用。 #### 1...
### Linux Bash脚本大全知识点概览 #### 一、引言 - **Shell的重要性:** Shell作为用户与操作系统之间的交互接口,在Linux/UNIX系统中扮演着极其重要的角色。特别是Bash(Bourne-Again Shell),它几乎是所有现代...
在这个项目中,所有上传操作都在BashShell环境中执行,用户通过命令行参数或配置文件来控制脚本的行为。 综上所述,"google-drive-upload"项目提供了一个实用的工具,通过编写Bash脚本来利用Google Drive API进行...
1. **主脚本文件**:通常命名为`create-bash-script.sh`,这是实际执行参数解析和脚本创建的文件。 2. **示例或模板文件**:可能有示例的Bash脚本模板,供主脚本使用。 3. **文档**:可能包括关于如何使用脚本的...
`gitlab-bash-api` 是一个使用Bash Shell编写的小型库,它封装了GitLab API的调用过程,使得开发者可以方便地在Linux或Unix环境中执行一系列GitLab操作。通过这个库,我们可以避免编写复杂的curl命令或者使用其他...
`~/.bashrc` 是每个用户主目录下的一个文本文件,它是Bash启动时读取的配置文件之一。这个文件用于设置shell的环境变量、别名、函数和各种自定义设置。`~`代表当前用户的家目录。`bashrc`文件中的指令会在每次打开新...