shell编程(一)之变量
变量:命名的内存空间
bash的变量种类:
根据变量的生效范围等标准
本地变量: 生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效
环境变量: 生效范围为当前shell进程及其子进程
局部变量: 生效范围为当前shell进程中某代码片段(通常指函数)
位置变量: $1,$2...来表示,用于让脚本在脚本代码中调用通过命令行传输给它的参数
特殊变量: $?、$0, $*, $@, $#
变量命名法则:
1. 不能使用程序中的保留字:if,for
2. 只能使用数字、字母及下划线,且不能以数字开头
3. 见名知意
只读变量:
readly name
declare -r name
本地变量:
变量赋值:name='value'
可以使用引用:
value:
1. 可以是直接字串,name="username"
2. 变量引用: name="$username"
3.命令引用: name=`COMMAND`,name=$(COMMAND)
变量引用:${name}, $name
"": 弱引用,其中的变量引用会被替换为变量值
'': 强引用,其中的变量引用不会被替换为变量值,而保持原字符串
显示已定义的所有变量
set
销毁变量:unset name
环境变量:
变量声明、赋值
export name=VALUE
declare -x name=VALUE
变量引用: $name, ${name}
显示所有的环境变量
export, env, printenv
销毁:
unset name
bash有很多内建的环境变量: PATH, SHELL,UID,HISTORY,HOME,PWD,OLD,HISTFILE,PS1
位置变量
在脚本代码中调用通过命令行传递给脚本的参数
$1,$2,... : 对应调用第1个、第二个等参数
shift [n]: 剔除某个变量
特殊变量
$?: 上一条命令的执行结果
$0:命令本身
$*: 传递给脚本的所有参数
$@: 传递给脚本的所有参数
$#: 传递给脚本的参数的个数
变量作用域:
本地变量:当前shell进程:为了执行脚本会启动专用的shell进程,因此本地变量的作用域是当前shell脚本程序
局部变量:函数的生命周期;函数结束时变量被自动销毁
在函数中定义局部变量的方法:加local关键字
lodal NAME=VALUE
shell编程(一)之变量的更多相关文章
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- 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 ~] ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- Shell 编程基础之变量和环境变量
一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...
- shell编程之环境变量
在shell编程里我们首先接触到的是环境变量,常用命令说明 1. 使用echo命令查看单个环境变量.例如: echo $PATH 2. 使用env查看所有环境变量.例如: env 3. 使用set查看 ...
- SHELL编程规范与变量
shell相比标准开发语言比如JAVA,C,C++来说还是比较简单的,其实就是一堆命令的集合而已,初学者从简单的shell脚本学起,至于shell编程还是要有编程思想在里面,因此,循序渐进很重要,先研 ...
- linux学习(七)Shell编程中的变量
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...
- shell编程之系统环境变量2
本课程是<Tony老师聊shell——变量>课程的延续,主要介绍Linux shell编程基础中的运算符.包括declare命令.数值运算方法和变量测试.首先在declare命令中介绍了数 ...
- Shell编程基础及变量
一.Shell脚本 1.Shell脚本的建立 由Linux命令.shell命令.程序结构控制语句和注释等内容组成. 脚本第一行 #!/bin/bash #!字符称为幻数,内核会根据它后面的解释器来确定 ...
随机推荐
- JAVA课程课后作业之使用递归完成回文
一.思路 1.我的想法是利用数组的做法来进行,先是用scanner录入一个String类 2.然后就是将String转化成char数组 3.递归的就是第一个和最后一个对比,然后第一个加一,最后一个减一 ...
- Spring AOP 随记
本周经历各种面试失败后,最后一站张建飞老大的阿里,感觉有着这般年纪不该有的垃圾履历而忧伤中,不过还是要继续加油的,毕竟他说的好,都是经历,无愧初心. 所以为了更加深入理解Spring AOP我又翻起了 ...
- Oracle课程档案,第十七天
flashback drop 闪回下降(删除)SQL> show parameter recyclebinSQL> purge recyclebin;(清除回收站)SQL> crea ...
- 从javaScript中学习正则表达式——RegExp
正则表达式工具:http://regexper.com 由于国外网络可以选择 https://github.com/javallone/regexper-static 离线安装作为本地服务. 正则 ...
- Springboot的常规属性配置和类型安全配置
1.类型常规配置: 通过在properties文件中注入键值对的方式,在java代码中通过@Value注解注入值 2.类型安全配置 将要注入的属性包装成一个类,给类加上注解:ConfigrationP ...
- Prime Flip AtCoder - 2689
发现我们每次区间取反,相邻位置的正反关系只有两个位置发生改变 我们定义bi为ai和ai-1的正反关系,即ai=ai-1时bi=0,否则bi=1,每次取反l~r,b[l]和b[r+1]会发生改变 容易发 ...
- 内购审核被拒-[environment-sandbox]
内购审核被拒-[environment-sandbox] 先把新创建的项目提交审核通过后再提交主包 注意,新增加的内购项目要截图告诉苹果
- git 用远程覆盖本地
git 用远程覆盖本地 git fetch --all git reset --hard origin/master
- vue开发记录--通用时间格式函数
parseTime(time, fm) { // 解析时间 time: 时间戳或者实践对象 fm: 格式 默认是{y}-{m}-{d} {h}:{i}:{s} if (arguments.length ...
- Redis入门到高可用(十三)—— 发布订阅
一.模型 二.主要API 1.publish(发布命令) 2.subcribe(订阅) 3.取消订阅(unsubcribe) 4.其他API 三.消息队列功能 redis实现消息队列功能 应用场景:抢 ...