(转)linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量
原文:http://blog.51cto.com/woyaoxuelinux/1863045
shell: 弱类型编程语言
强:变量在使用前,必须事先声明,甚至还需要初始化;
弱:变量用时声明,甚至不区分类型;
变量赋值:VAR_NAME=VALUE
bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
set VARNAME=VALUE: 作用域为整个bash进程;
局部变量:
local VARNAME=VALUE:作用域为当前代码段;
环境变量:作用域为当前shell进程及其子进程;
export VARNAME=VALUE
VARNAME=VALUE
export VARNAME
“导出”
位置变量:
$0,$1, $2, ... $0表示命令本身,$1表示第一个参数,依次类推$3表示第三个参数
shift n 轮替,n表示数字 把后面第n个参数轮替到第一个参数
eg: vim shift.sh
#!/bin/bash
#
echo $1
shift 2
echo $1
shift 2
echo $1
./shift.sh 1 2 3 4 5
[root@xuelinux test]# ./shift.sh 1 2 3 4 5
1
3
5
特殊变量:
$?: 上一个命令的执行状态返回值;
$#: 参数的个数
$*: 参数列表
$@: 参数列表
程序执行,可能有两类返回值:
程序执行结果
程序状态返回代码(0-255)
0: 正确执行
1-255:错误执行,1,2,127系统预留;
输出重定向:
> 输出覆盖重定向
>> 输出追加重定向
2> 错误输出覆盖重定向
2>>错误输出追加重定向
&> 正确错误输出重定向
撤消变量:
unset VARNAME VARNAME是变量名
查看当shell中变量:
set VARNAME 不过set可以省略 VARNAME是变量名
查看当前shell中的环境变量命令如下:
printenv
env
export
脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
shebang: 魔数
#!/bin/bash
# 注释行,不执行
/dev/null: 软件设备, bit bucket,数据黑洞
脚本在执行时会启动一个子shell进程;
命令行中启动的脚本会继承当前shell环境变量;
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;
(转)linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量的更多相关文章
- 别出心裁的Linux命令学习法
别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...
- Linux 第一次学习笔记
一.Linux 为何物 Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有 ...
- Linux命令学习
Linux命令学习 Ubuntu常用快捷键 •Ctrl+Alt+T: 打开终端 •Ctrl+Shift+T: 新建标签页 •Tab: 终端中命令补全 •Alt+数字N: 终端中切换到第N个标签页 •↑ ...
- 马哥Linux base学习笔记
介绍课程: 中级: 初级:系统基础 中级:系统管理.服务安全及服务管理.shell脚本 高级: MySQL数据库: Cache & storgae 集群: Cluster lb: 4la ...
- 安装虚拟机与Linux的学习
#虚拟机 在安装虚拟机之前,我先上网查了一些关于虚拟机的知识. 虚拟机,即Virtual Machine,在计算机科学中的体系结构裏,是指一种特殊的软件,他可以在计算机平台和终端用户之间创建一种环境, ...
- Linux Basic学习笔记01
介绍课程: 中级: 初级:系统基础 中级:系统管理.服务安全及服务管理.Shell脚本: 高级: MySQL数据库: cache & storage 集群: Cluster lb: 4laye ...
- linux 命令学习(持续完善中...)
linux 命令学习(持续完善中...) 主要是记录一些开发过程中用到的linux命令,慢慢补充 一.用户 1.添加用户: useradd 用户名 2.设置密码:passwd 用户名 ,然后按照提示输 ...
- Linux基础学习整理
linux学习记录 下载地址 centos 下载地址: 网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/ ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
随机推荐
- 在Lua中封装一个调试日志(附lua时间格式)
--自己封装一个Debug调试日志 Debug={} Info={} local function writeMsgToFile(filepath,msg) end function Debug.Lo ...
- WSAGetOverlappedResult函数
WSAGetOverlappedResult函数 通过WSAWaitForMultipleEvents函数来得到重叠操作完成的通知,那么自然也需要一个函数来查询一下重叠操作的结果,定义如下 BOOL ...
- kafka学习默认端口号9092
一 Kafka 概述1.1 Kafka 是什么在流式计算中,Kafka 一般用来缓存数据,Storm 通过消费 Kafka 的数据进行计算.1)Apache Kafka 是一个开源消息系统(微信公众号 ...
- 关于Java中的几种特殊类与接口,及特殊的创建实例的方法
Java中有一些特殊的类,在教材中讲解的不深,但是确实非常有用的,这里总结一下,里面用到的有网上搜到的内容,这里表示下感谢. 一.成员内部类 成员内部类是在一个内中定义的另外一个类,这个类属于其上的类 ...
- 【转载】UML类图几种关系的总结
因为有的时候很久不弄UML图,老是忘记几个常见的连接线的意思,这篇完全说转载:UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Real ...
- Centos部署Abp zero常见问题及处理
多租户切换,多语言切换异常 解决: 修改nginx配置,在nginx.conf中 增加 #多租户问题 ignore_invalid_headers off; 修改应用程序Logo异常处理 异常: Sy ...
- C#面向对象二
1.方法的定义 概念:对象的动态特征就是方法(静态特征是属性),方法表示此对象可以做什么. 类型:实例方法,静态方法,(构造方法,多态时会用到抽象方法和虚方法) 2.注意事项 访问修饰符:默认priv ...
- “全栈2019”Java第四十七章:继承与方法
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- ios 相机 自定义 相片的截取
前段时间公司需要做一个身份识别的功能,而系统相机无法满足要求,so自己自定义了. 上代码: .h文件 #import <UIKit/UIKit.h> #import <AVFound ...
- MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled
初试redis,删除或者修改值的时候报的错,解决方式是运行命令: 127.0.0.1:6379> config set stop-writes-on-bgsave-error no