linux学习(七)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要取出变量的值(”==“两边不能有空格)
上图输出加了$的值为这个变量的值,不加就直接输出了字符串
当复制给变量含有空格、制表符、或者换行符时,要用双引号把这个字符串引起来
当然赋值也可以像下图所示:
linux学习(七)Shell编程中的变量的更多相关文章
- Linux学习之Shell编程基础
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...
- linux学习总结----shell编程
## 环境变量 ## 全局变量 ``` 常见的全局环境变量 PATH 指令的搜索路径 HOME 用户的家目录 LOGNAME 登录名 SHELL 脚本的类型 使用全局环境变量 echo $PATH 自 ...
- linux学习18 shell脚本基础-bash变量和逻辑运行
一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:ins ...
- Shell编程中的变量作用域
有两个shell脚本文件: a.sh name=Tom echo $name ./b.sh b.sh echo "name in b.sh:"$name 运行./a.sh时输出结果 ...
- (七)shell编程学习
1.shell程序练习:创建一个dir文件夹,在dir文件夹里再创建一个cd.c文件 首先vim hello.sh 2.shell中的变量定义和引用 (1)变量定义和初始化.shell是弱类型语言(语 ...
- shell中的输入输出和编程中的变量(shell 03)
shell中的输入输出标准输入:键盘标准输出:终端显示器>> 追加是换行追加的echo -n 不尾随换行符 -e 启用解释反斜杠的转义功能 -E 禁用解释反斜杠的转义功能(默认) --he ...
- shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...
- 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
随机推荐
- Linux是如何启动的?
参考资料: An introduction to the Linux boot and startup processes 这篇随笔,可以理解为是对这篇英文文章的翻译与个人理解.笔记的整合. 扩展阅读 ...
- WSL2(预览版)体验笔记
WSL2安装 WSL2在今年5月份Microsoft Build大会上发布了,但至今Windows10一直没收到更新推送,我想这么久过去就算没进入正式,至少也到了RC版了吧,于是开始折腾准备体验一把. ...
- c代码中while循环的一个死机问题引发的思考
前记 c语言已经是一门经常吃饭的本领,本来是要有种看一眼,就知道哪儿出问题了才行,没想到,遇到实际问题的时候,才知道自己的修为不到家.还没有达到那种炉火纯青的境界.看来,不是这个世界没有机会,是自 ...
- SpingSecurity + SpringSession 死磕
SpingSecurity + SpringSession 整合 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty ...
- 深入了解angularjs中的$digest与$apply方法,从区别聊到使用优化
壹 ❀ 引 如果有人问,在angularjs中修改模型数据为何视图会同步更新呢,我想大多数人一定会回答脏检查(Dirty Checking)相关概念.没错,在angularjs中作用域(scope) ...
- 为什么delete后磁盘空间没有释放而truncate会释放?
背景 因项目需求,需要清理一批旧数据,腾出空间给新数据,让同事负责这件事.料想会很顺利,但很快找到我,并告知在postgresql中把一张大的数据表删除掉了,查询表的size并没有改变. 我震惊了,问 ...
- C#基础之事件(2)
在“C#基础之事件(1)”中已对事件有了一个大概,这里对事件进行更深入的学习. 本节按以下内容展开: 1.事件拥有者与事件响应者的关系: 2.事件订阅的多种写法: 3.事件的订阅和取消订阅: 4.多事 ...
- mysql的锁机制详解
这段时间一直在学习mysql数据库.项目组一直用的是oracle,所以对mysql的了解也不深.本文主要是对mysql锁的总结. Mysql的锁主要分为3大类: 表级锁:存储引擎为Myisam.锁住整 ...
- 老师说的都对 - Beta阶段博客作业
第二小组Beta冲刺阶段博客目录 github 地址:PCES-Github 一.Scrum Meeting 1.第十周会议记录 2.第十一周会议记录 3.第十二周会议记录 二.测试报告 Beta阶段 ...
- Dotnetcore安装nuget包时不能使用content中的文件
问题:用NUGET打包了一个asp.netcore的项目,试图安装到另一个asp.netcore项目中,除了自动添加引用外,还希望自动释放一些文件以供修改.这些操作以前在netframe中是正常的,脚 ...