Shell-01-变量
变量
系统常用变量
#!/bin/bash
echo "默认shell: $SHELL"
echo "当前用户家目录: $HOME"
echo "内部字段分隔符: $IFS"
echo "默认语言: $LANG"
echo "默认可执行程序路径: $PATH"
echo "当前目录: $PWD"
echo "当前用户ID: $UID"
echo "当前用户: $USER"
echo "历史命令大小: $HISTSIZE"
echo "随机生成一个0-32767的整数: $RANDOM"
echo "主机名称: $HOSTNAME"
#扩展知识
#修改历史命令记录条数大小
vim /etc/profile
HISTSIZE=10000
source /etc/profile
普通变量和临时环境变量
#变量等号两边不建议空格,不然会出问题
#普通变量定义 VAR=value
#临时环境变量定义 export VAR=value
#区别
#在当前shell进程中定义的环境变量,其作用域是当前的shell进程
#当用 export 命令导入到系统环境变量时,则作用域是shell进程以及shell的子进程
不使用export
定义变量
使用export
定义变量
注意:在执行脚本的时候,会在当前终端会生成一个子shell去执行脚本的命令,而不会直接去执行系统命令
位置变量
位置变量是指的shell脚本或者函数后面跟的 $n 变量
$n 取值范围 $1 $2 $3 ... $9, 从第10个开始需要使用花括号调用 ${10}
shift 命令
执行一次shift命令,位置变量个数就会减一,而变量值会提前一位
也可以理解丢弃当前位置的变量
shift n 可移动n位
特殊变量
$0 脚本自身名字
$? 上一条命令返回的状态码,0为成功,非0则执行失败
$# 位置参数总数
$* 所有的位置参数被看做成一个字符串
$@ 所有的位置参数被看做成独立的字符串
$$ 当前进程PID
$! 上一条后台运行的进程的PID
变量的引用
= 变量赋值
+= 两个变量相加(相当于字符串拼接)
在Shell中所有的变量默认都是字符串型
单引号、双引号、反撇号
`......`
反撇号等效于 $(......),相当于先执行命令,在把命令返回结果赋值
单引号和双引号之间的差别
单引号会忽略特殊字符
双引号会解释特殊字符原有的意义 如 $ 、! 等
Shell-01-变量的更多相关文章
- shell之变量与read
环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...
- shell与变量的声明的操作
1.给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2.ps:显示当前登录会话的所有活动进程: 3.更 ...
- 【Linux】之shell特殊变量整理
目录 1. 特殊变量列表 2. 特殊说明 在shell中变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即p ...
- (转载)shell变量基础—shell自定义变量
(转载)http://see.xidian.edu.cn/cpp/html/1494.html 一.Shell定义变量需要遵循的规则 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下 ...
- shell基础——变量定义
快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...
- shell的变量处理
shell的变量处理 一.删除 删除(删除某一段) # 从前向后删除 % 从后向前删除 删除(删除某一部分) $(var:nu1:nu2) nu1表示开始位置 nu2表示删除长度 示例如下 file= ...
- shell 环境变量的相关配置文件和配置方法
shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...
- Linux编程 12 (默认shell环境变量, PATH变量重要讲解)
一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash shell支持的Bourne变量 Bo ...
- shell模板变量替换
我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先 ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
随机推荐
- CentOS-搭建MinIO集群
一.基础环境 操作系统:CentOS 7.x Minio在线演示 Minio下载 二.准备工作 2.1.机器资源 192.168.1.101 /data1 192.168.1.102 /data2 1 ...
- Docker部署Mysq集群
1.PXC(Percona XtraDB Cluster) 速度慢 但能保证强一致性 适用于保存价值较高的数据 数据同步是双向的 在任一节点写入数据 都会同步到其他所有节点 在任何节点上都能同时读写 ...
- 技能篇:docker的简易教程
虚拟机技术每家公司发展到一定规模都必须考虑的,更好的环境隔离,更好的事故排查,更好的服务部署 docker的原理 docker更换阿里源 docker容器的相关命令 Dockerfile文件编写 do ...
- C语言:if条件写法
if 语句的判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量,常量 例如: //情况① if(b){ //TODO: } //情况② if(b=5){ //情况① //TO ...
- c语言:sprintf() 数字转字符赋值给数组
//sprintf() //sprintf 最常见的应用之一是把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa /* 缓冲区溢出 第一个参数的长度太短了,没的说,给个大点的地方 ...
- ASP.NET 检测当前计算机及登录用户名
TextBox1.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
- MQTT 2——服务端安装与客户端测试
本篇记录一下MQTT服务器,客户端,JAVA客户端的选择开发与测试 MQTT服务端选择与安装过程:MQTT客户端测试工具安装与测试:MQTT JAVA客户端的选择与开发,测试 MQTT服务器选择与安装 ...
- c语言函数的嵌套使用和矩阵运算
这段时间,听刚刚学习c的同学说函数嵌套运用不太熟练,想做一个简单的程序进行练习,我也就当练练手了,哈哈.虽然说是比较简单,但是其中的思维也是值得思考的. 一.函数的嵌套使用 简单说明题目:对于等式 y ...
- 使用vlookup的模糊匹配和字符串拼接
1,=IF(ISNA(VLOOKUP("*"&$D2&"*",$A$2:$A$43,1,FALSE))=FALSE,TRUE,FALSE) 2, ...
- vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ...