linux学习(七)Shell编程中的变量
@(Shell编程)
shell编程的建立
[root@localhost ~]# vi mytest
就建立了一个名叫mytest的文件
vim编辑器没有接触过,你就需要学习一下啊,这里介绍几个简单的命令:
- 单点I进入插入模式
- Ctrl+c退出插入模式
- 在浏览模式按下“:”,再输入q是不保存退出、wq是保存并退出
shell的hello world!
echo 你想要输出的内容
执行脚本的方法:
sh 你创建的shell脚本的名字
bash 你创建的shell脚本的名字
==打开一个子shell去读取,不需要有执行权限==
或者
source 你创建的shell脚本的名字
==区别:在当前shell内执行、且不需要有执行权限,source可以替换成.==
. 你创建的shell脚本的名字
或者
./你创建的shell脚本的名字
==打开一个子shell,但是需要有执行权限==
Shell的环境变量
相当于window系统下的环境变量
|环境变量|说明|
|:---:|:---:|
|PATH|指定命令的搜索路径,以冒号为分隔符
|HOME|指定用户的主工作目录
|HISTSIZE|命令历史文件
|LOGNAME|当前的登录名
|HOSTNAME|主机的名称
|SHELL|shell的全路径名
|TERM|用户控制终端的类型
|PWD|当前工作目录的全称
|PS1|命令基本提示符,root用户是“#”,对于普通用户是“"$"
环境变量一般都大写,系统启动以后自动加载,可写的环境变量用户可以随时修改
使用和设置环境变量
|命令|说明|
|:---:|:---:|
|echo|显示某个环境变量值
|export|设置一个新的环境变量
|env|显示所有环境变量
|set|显示本地定义的Shell变量
|unset|消除环境变量
|readonly|设置只读环境变量
如图设置PI环境变量为3.1415926
env命令查看
Shell的系统变量
Shell的系统变量主要在对参数和命令返回值进行判断时使用,包括脚本和函数的参数,以及脚本和函数的返回值。
常用系统变量
|系统变量|说明|
|:---:|:---:|
|$0|Shell程序名
|$1-$9|第1~9个命令行参数的值
|$*|传递给脚本的所有参数,全部参数合为一个字符串
|$ #|传递给脚本的参数个数
|$ $|当前进程的ID
|$ ?|最后执行一条命令的退出状态,返回值为0则成功,非0则失败
|$ !|在后台运行最后一个进程的ID
命令行参数的个数大于9的个时,可以使用shift指令将参数左移,获取第10个以后的参数。也可以用shift n将所有参数一次性左移n位
用户自定义变量
用户自定义变量在Shell脚本中使用,他们拥有临时的存储空间。在程序执行中值可以改变,这些变量可以设置为只读。
在程序中使用变量值的时候,要在变量名前面加一个字符“$"。这个符号告诉Shell要取出变量的值(”==“两边不能有空格)
上图输出加了$的值为这个变量的值,不加就直接输出了字符串
==当复制给变量含有空格、制表符、或者换行符时,要用双引号把这个字符串引起来==
当然赋值也可以像下图所示:
原文地址:https://www.cnblogs.com/lzy321/p/10871903.html
- AI加持下的假肢将会越来越聪明
- 通过几个Hello World感受.NET Core全新的开发体验
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor
- 基于自制数据集的MobileNet-SSD模型训练
- .NET Core采用的全新配置系统[1]: 读取配置数据
- ASP.NET MVC三个重要的描述对象:ActionDescriptor
- 升级比特币区块链后,以特币已叩响成功的大门
- .NET Core采用的全新配置系统[2]: 配置模型设计详解
- 采用双拼域名meicai.cn的美菜网融资4.5亿美元
- 区块链技术或将迎来突破性进展,以特币未来生机勃勃
- 配置多个网卡的OpenStack VM
- .NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象
- 游戏用户中心开发
- .NET Core采用的全新配置系统[4]: “Options模式”下各种类型的Options对象是如何绑定的?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Idea开发maven插件
- redis实战 migrate异常NOAUTH Authentication required.
- linux内存使用情况分析(free + top)
- Centos7 python3安装
- crontab JAVA_HOME not found
- Centos7 源码安装mysql5.6
- mysql登录时报socket找不到终极解决方案
- Grafana将数据库由sqlite3改为mysql
- Python自学成才之路 带有参数的装饰器
- Grafana 将默认的元数据库 sqlite 改为 mysql
- 使用IDEA整合spring4+spring mvc+hibernate
- springmvc中@PathVariable和@RequestParam的区别
- centos7 安装mysql5.6
- bashdb安装及调试shell脚本
- linux awk指令详解