`

ma系列之-11-bash变量 脚本读取配置文件

 
阅读更多

 

 

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脚本编程指南 操作系统 - Linux - 高级Bash脚本编程指南.zip

    Bash脚本是一种文本文件,其中包含了可执行的Shell命令。它允许你自动化日常任务,例如文件管理、系统监控、数据处理等。脚本的开头通常会声明其解释器,即`#!/bin/bash`,这告诉系统使用Bash来执行该脚本。 在Bash...

    Python-pyshPython增强的bash脚本

    4. **简化脚本**:通过引入Python的模块和库,可以大大减少Bash脚本的复杂性,特别是处理文件操作、网络请求、数据解析等任务时。 5. **提高效率**:Python的性能通常优于Bash,特别是在处理大量数据或执行复杂计算...

    bash-yaml:读取yaml文件并在bash中创建变量

    `bash-yaml`是一个轻量级的Bash函数库,允许我们读取YAML文件并将其内容映射到Bash变量。 安装`bash-yaml`通常涉及克隆其GitHub仓库,例如`bash-yaml-master`,然后将库中的函数引入Bash脚本。要克隆仓库,可以使用...

    Bash-Beginners-Guide.rar_bash脚本_beginners

    这份"Bash-Beginners-Guide"是一个针对初学者的Linux bash脚本编程教程,旨在帮助新手快速掌握bash脚本的基本概念和用法。 1. **基础语法** - **变量**:在bash中,变量用于存储数据。例如,`NAME="John"`,然后...

    Advanced Bash-Scripting Guide <>

    9-11. 利用修改文件名,来转换图片格式 9-12. 模仿getopt 命令 9-13. 提取字符串的一种可选的方法 9-14. 使用参数替换和error messages 9-15. 参数替换和"usage"messages 9-16. 变量长度 9-17. 参数替换中的模式匹配 ...

    abs-guide----Advanced Bash-Scripting Guide

    《Advanced Bash-Scripting Guide》是一本专注于深入学习Bash脚本艺术的书籍,由Mendel Cooper撰写。这本书不仅适合初学者,也适合有一定经验的脚本编写者,提供了丰富的实例来帮助读者理解并掌握Bash脚本的高级概念...

    6Bash特性1

    * -f:禁止Bash读取配置文件 * -h:显示Bash的帮助信息 * -k:使得所有变量都被导出到环境变量中 * -m:启用job control功能 * -n:使得Bash不执行命令,只检查命令的语法是否正确 * -p:禁用Bash的POSIX mode * -t...

    linux-bashblog一个Bash脚本用于创建博客下载运行和写作

    在Linux环境中,Bash(Bourne-Again SHell)是默认的Shell,它支持一系列内建命令和可扩展的脚本语言特性。`bashblog`就是这样一个脚本,通过巧妙地利用这些特性来实现其功能。 1. **下载**:`bashblog`可能包含了...

    Linux Bash脚本编程大全

    ### Linux Bash脚本编程大全知识点概述 #### 一、引言 《Linux Bash脚本编程大全》是一本全面介绍Bash脚本编程的书籍,它不仅涵盖了Bash的基础知识,还包括了许多高级技巧以及Linux/UNIX操作系统相关的知识。本书...

    linux-Shell基础视频教程

    10.3.1 Shell基础-Bash基本功能-历史命令与补全.mp4 10.3.2 Shell基础-Bash基本功能-别名与快捷键.mp4 10.3.3 Shell基础-Bash基本功能-输入输出...10.6.3 Shell基础-环境变量配置文件-其他配置文件和登录信息.mp4

    linux bash配置文件

    最后,`dotfiles-custom-bash-zsh`这个文件可能是一个包含个人配置的dotfiles仓库,通常用于存储用户的所有配置文件,包括Bash和Zsh。Zsh是另一个流行的shell,拥有更多的内置功能和更丰富的插件系统。如果你打算...

    Shell编程介绍.pptx

    脚本方式– 脚本执行方式,将 Bash 语句写在文本文件中,批量执行 --------------------------------------------------------- 脚本方式允许用户编写 Bash 语句,放在文本文件中,然后批量执行。 Bash 的执行方式...

    Bash特殊变量讲解

    在Bash脚本编程中,特殊变量是极其重要的组成部分,它们能够帮助开发者更好地控制脚本的行为并提升程序的灵活性。本文将详细介绍Bash中的特殊变量及其用法,帮助读者深入理解这些变量如何在脚本中发挥作用。 #### 1...

    Linux Bash脚本大全

    ### Linux Bash脚本大全知识点概览 #### 一、引言 - **Shell的重要性:** Shell作为用户与操作系统之间的交互接口,在Linux/UNIX系统中扮演着极其重要的角色。特别是Bash(Bourne-Again Shell),它几乎是所有现代...

    google-drive-upload:Bash脚本将文件上传到google drive

    在这个项目中,所有上传操作都在BashShell环境中执行,用户通过命令行参数或配置文件来控制脚本的行为。 综上所述,"google-drive-upload"项目提供了一个实用的工具,通过编写Bash脚本来利用Google Drive API进行...

    linux-一个bash脚本旨在使用基本参数解析创建其他bash脚本

    1. **主脚本文件**:通常命名为`create-bash-script.sh`,这是实际执行参数解析和脚本创建的文件。 2. **示例或模板文件**:可能有示例的Bash脚本模板,供主脚本使用。 3. **文档**:可能包括关于如何使用脚本的...

    gitlab-bash-api:使用bash脚本配置GitLab

    `gitlab-bash-api` 是一个使用Bash Shell编写的小型库,它封装了GitLab API的调用过程,使得开发者可以方便地在Linux或Unix环境中执行一系列GitLab操作。通过这个库,我们可以避免编写复杂的curl命令或者使用其他...

    bash配置文件示例

    `~/.bashrc` 是每个用户主目录下的一个文本文件,它是Bash启动时读取的配置文件之一。这个文件用于设置shell的环境变量、别名、函数和各种自定义设置。`~`代表当前用户的家目录。`bashrc`文件中的指令会在每次打开新...

Global site tag (gtag.js) - Google Analytics