Centos7 Shell编程 - 变量
日期: 2019-05-18 分类: 个人收藏 330次阅读
1、Shell是什么
- Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的
界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
2、Shell脚本执行方式
- 脚本格式要求
- 脚本以
#!/bin/bash
开头 - 执行脚本需要又可执行权限
- 脚本以
- 常用执行方式
- 输入脚本的绝对路径或相对路径 (推荐)
- 首先赋予脚本可执行权限
- 执行脚本
- sh + 脚本
- 不用执行权限,直接执行
- 输入脚本的绝对路径或相对路径 (推荐)
- 示例 (输出"Hello,World")
- 创建脚本
#!/bin/bash echo "Hello,World"
- 修改权限
- 执行脚本
- 创建脚本
3、Shell变量的介绍
- Linux中Shell的变量分为:系统变量和用户自定义变量
- 系统变量:$HOME、$PWD、$SHELL、$USER
- 显示当前shell中所有变量:
set
4、Shell变量的定义与使用
- 基本语法
- 定义变量:变量=值
- 撤销变量:unset 变量
- 声明静态变量:readonly 变量 (静态变量不能unset)
- 定义变量规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头
- 等号两侧不能又空格
- 变量名称规范使用大写
- 示例
- 定义变量A
#!/bin/bash A=1001 echo "$A"
- 撤销变量A
#!/bin/bash A=1001 echo "$A" unset A echo "$A"
- 定义静态变量A,查看是否能使用unset
#/bin/bash readonly A=1002 echo "$A" unset A echo "$A"
- 定义变量A
- 将命令的返回值赋给变量 (重点)
-
用法
- A=`ls -la`
- A=$(ls -la)
-
示例
#!/bin/bash A=`cal` echo "$A" echo "====================" B=$(date) echo "$B"
-
5、设置环境变量
- 基本语法
- export 变量名=变量值 (功能描述:将shell变量输出为环境变量)
- source 配置文件 (功能描述:让修改后的配置信息立即生效)
- echo $变量名 (功能描述:查询环境变量的值)
- 快速入门
- 在/etc/profile文件中定义TOMCAT_HOME环境变量
TOMCAT_HOME=/opt/apache-tomcat-9.0.14 export TOMCAT_HOME
- 查看环境变量TOMCAT_HOME的值
- 在另外一个shell程序中使用 TOMCAT_HOME
#!/bin/bash echo "tomcat=$TOMCAT_HOME"
- 在/etc/profile文件中定义TOMCAT_HOME环境变量
6、位置参数变量
- 基本语法
- $n (功能描述:n为数字,$0代表命令本身,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如{10})
- $* (功能描述:这个变量代表命令行的所有参数,它把所有的参数看成一个整体)
- $@ (功能描述:这个变量代表命令行的所有参数,它把每个参数区分对待)
- $# (功能描述:这个变量代表命令行中所有参数的个数)
- 示例
- 编写一个shell脚本, 在脚本中获取到命令行的各个参数信息
#!/bin/bash echo "$0 $1 $2" echo "$*" echo "$@" echo "参数个数:$#"
- 编写一个shell脚本, 在脚本中获取到命令行的各个参数信息
7、预定义变量
- 基本介绍
- 就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
- 基本语法
- $$ (功能描述:当前进程的进程号[PID])
- $! (功能描述:后台运行的最后一个进程的进程号)
- $? (功能描述:最后一侧执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行不正确)
- 示例
#!/bin/bash echo "当前的进程号:$$" ./test04.sh & echo "最后的进程号:$!" echo "执行的返回状态:$?"
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:Linux Linux
上一篇: Linux学习第一篇之Linux系统安装——系统分区
下一篇: 用 Python 加密文件
精华推荐