Shell 变量

本文详细介绍了Linux Shell脚本的基础知识,包括脚本开头规范、执行方式、变量使用、输出方法、注释方式以及环境变量的设置。讲解了如何创建和执行脚本,如何定义和操作变量,特别是环境变量的持久化设置。此外,还提到了数组变量的使用和输入输出重定向。文章通过实例展示了Shell脚本的实际运用,对于初学者来说是一份实用的入门指南。
摘要由CSDN通过智能技术生成

shell是一个命令行解释器,为用户提供了项Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序。

shell脚本的注意事项:

  • 脚本以    #!/bin/bush  开头(默认规范)
  • 脚本要有执行的权限
  • shell脚本文件,以.sh结尾(默认规范)

脚本的执行方式:

  1. 脚本默认没有执行权限,需要先添加执行权限,然后再执行文件
  2. 使用  sh  脚本名   直接执行文件(可以不用给与权限)

第一种方式:

vim 创建一个文件并添加以下代码:

查看权限,并分配权限 :

 运行:

第二种方式: 

 shell的变量

环境变量:

存储有关 shell 会话和工作环境的信息(这也是它们被称作环境变量的原因)。这项特性允许你在内存中存储数据,以程序或shell中运行的脚本能够轻松访问到它们。

bash shell 环境变量分为:

  • 全局变量
  • 局部变量 

系统的全局变量基本全用大写字母

env 或printevn 显示全局变量 

 注意:筛选时使用 printevn

set  显示shell中的变量

set 命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量
以及用户定义变量。

 Shell中变量的定义:

  • 定义变量:  变量=值(变量一般为大写) 
  • 删除变量:  unset  变量
  • 静态变量: readonly 变量
  • 输出变量:$变量

注意:静态变量不能用unset删除

shell的输出方式:

  1. echo   A=$A
  2. echo  "A=$A"

shell变量的定义规则:

  1. 变量由字母,数字,下划线组成,不能以数字开头
  2. 等号两侧不能有空格
  3. 变量名称一般为大写

将命令的返回值赋值给变量:

  1. 使用   '命令 '                A='date'    把date的结果赋值给A
  2. 使用  $(命令)         A=$(date)  把date的结果赋值给A

shell 的注释方式:

  • 单行       #
  • 多行       :<<!            !

设置全局环境变量:

export   变量    (使变量成为全局环境变量)

在一个脚本文件中输入:

 

 

 直接在脚本内输出是可以直接输出的,但直接用指令输出由于系统还没让配置立即生效,需要先把配置立即生效才能使用。

source   配置文件   (让配置立即生效)

注意:修改子shell中的全局变量并不会修改父shell中的全局变量(未直接修改脚本文件)

 设置PATH环境变量:

PATH环境变量定义了用于进行命令和程序查找的目录

 添加PATH环境变量:这种设置是临时的,重启消失

PATH=$PATH:路径

启动bash shell的3种方式:

  • 登录时作为默认登录shell
  • 作为非登录shell的交互式shell
  • 作为脚本运行脚本的非交互式shell

1.bash shell 作为登录shell时,需要启动的命令

  1. /etc/profile     是bash shell默认的的主启动文件​​​​​
  2. $HOME/bash_profile
  3. $HOME/.bashrc
  4. $HOME/.bash_logn
  5. $HOME/.profile
  • $HOME目录下的启动文件 (带点号,隐藏文件)
    • $HOME/.bash_profile
    •  $HOME/.bashrc   该文件一般通过其他文件运行
    • $HOME/.bash_login
    • $HOME/.profile

2.交互式shell进程 

bash shell  不是登录系统时启动,而是命令行启动的,这种为交互式shell。

bash 是作为shell启动的,不会访问/etc/profile 而是检查 HOME中的 .bashrc 文件

.bashrc 文件有两个作用:
  • 查看/etc目录下通用的bashrc文件,
  • 为用户提供一个定制自己的命令别名和私有脚本函数

3.非交互式shell进程

系统执行shell脚本时用的就是这种shell,这种方式没有命令提示符。

bash shell提供了BASH_ENV环境变量。当shell启动一个非交互式shell进程时,它会检查这个环境变量来查看要执行的启动文件。如果有指定的文件,shell会执行该文件里的命令,这通常包括shell脚本变量设置。

环境变量持久化

把变量放在 启动文件 /etc/profile 中(但会随着版本更新而改变)

最好创建一个脚本文件 ,把全局变量放在 /etc/profile/init.d 目录中

大部分版本,存储个人用户永久性bash shell 变量的地方是$HOME/.bashrc文件

数组变量 

创建格式为: 变量名=(数据1  数据2  ...)

输出格式为:

  • ${变量名[x]}  x为索引值

  • ${变量名[*]}  输出全部

删除变量:

  • unset  变量名[x]   x为索引值

注意事项:

  • 索引值从0开始
  • 删除数组值是,只是删除该位置的值,该索引未被删除
  • 数组变量移植性不好,一般很少用到

例如:在一个脚本文件中输入以下代码

 运行结果: 

>  输出重定向

command > outputfile   向将命令的输出发送到一个文件中 

注意:如果该文件由数据,则据覆盖已有文件

 

 

<  输入重定向

command < inputfile       输入重定向将文件的内容重定向到命令

 wc 对数据中的文本进行计数

数据解释: 行数    词数     字节数

|   管道 (简单的讲:先执行前面,然后把数据再给后面执行)

数学运算符

expr 用来处理数学表达式

 方括号 或者括号

 可以直接在方括号进行数学运算

 注意:bash shell数学运算符只支持整数运算

bc  内建的bash计算器,可以用来计算浮点数

计算过程:

 

bc在脚本中的使用(可以赋值)

格式为  变量 = $( echo "scale=x; 运算表达式 " | bc)

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值