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 #!字符称为幻数,内核会根据它后面的解释器来确定 ...
随机推荐
- 如何开始学习ADF和Jdeveroper 11g
作为第一篇博客,先给一些资料可以帮助初学者开始学习ADF和Jdeveloper11g 1.首先毫无疑问,你要懂java语言, 可以看看Thinking In Java, 或者原来sun的网上的一些文档 ...
- java学习之路--StringBuffer常见的功能和实例
---恢复内容开始--- 储存 StringBuffer append();将指定数据作为参数添加到已有数据尾处 StringBuffer insert(index,数据):可以将数据插到指定的ind ...
- Oracle 修改表 Alter Table...
--增加列ALTER TABLE Student add sex number(2);--删除列ALTER TABLE Student drop column sex;--更改列属性 ALTER TA ...
- Recurrent NN vs Recursive NN
https://www.bilibili.com/video/av9770302/?p=8 李宏毅深度学习 图很清楚的反映出两者的不同 Recurrent可以看成Recursive的特殊形式,即以特定 ...
- LeetCode 389 Find the Difference 解题报告
题目要求 Given two strings s and t which consist of only lowercase letters. String t is generated by ran ...
- SyntaxError:unexpected EOF while parsing(<string,line 0>)
在python+Django中出现报错:(上图) 经断点发现:python内置函数eval在处理空字符串时会返回EOF错误,判断后解决
- 目标检测(四)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
作者:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun SPPnet.Fast R-CNN等目标检测算法已经大幅降低了目标检测网络的运行时间. ...
- C++(+类型加强 +加入面向对象)
1.c++中所有变量可以在使用前定义. ; i< ; i++) { ; j< ; j++) { do_sth; } } 2. c++ 中可以获得 register 变量的地址. regis ...
- 2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告
一.实验内容及步骤 使用JDK编译.运行简单的Java程序 cd code进入code文件夹 mkdir 20175313创建20175313文件夹 ls查看当前目录 cd 20175313,mkdi ...
- OAuth2认证和授权:ClientCredentials认证
1:创建授权服务器项目:AuthorizationServer,添加包:IdentityServer4 2:创建资源服务器项目:ResourcesServer,添加包:IdentityServer4. ...