原文: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环境变量;

系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;

转载于:https://www.cnblogs.com/liujiacai/p/9007044.html

(转)linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量...相关推荐

  1. linux shell 学习小结

    学习内容:https://www.linuxdaxue.com/series/linux-shell-series/ 个人笔记如下 1."#!" 是一个约定的标记,它告诉系统这个脚 ...

  2. Linux操作系统学习笔记【入门必备】

    Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...

  3. 适合小白的Linux入门学习教程,从安装到实操(涵盖各种常用指令,超详细!)

    Linux入门学习 Linux简介 Linux是什么 Linux的特点 Linux和Windows的区别 Linux入门 我们为什么要学习Linux 环境搭建 安装CentOS 购买云服务器 走进Li ...

  4. linux个人学习记录

    linux学习记录 资料: Linux 黑马程序员_bilibili AcWing Linux基础课 可能是东半球最全面易懂的 Tmux 使用教程! Shell 教程 | 菜鸟教程 (runoob.c ...

  5. Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)

    开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnue ...

  6. Linux操作系统学习 | Linux常用命令

    文章目录 操作系统 1.桌面操作系统 2.服务器操作系统 3.嵌入式操作系统(Linux) 4.移动设备操作系统(iOS.Android(基于Linux)) 一.虚拟机 二.Linux操作系统的发展史 ...

  7. linux 命令学习大全,初学者必备

    linux 命令学习基础知识,学完可以对linux 常用命令进行叫清晰的了解,可以对文本操作,系统网络配置,磁盘分区,系统运行状况分析,简单shell脚本进行编写. 一.文本编辑 linux文本编辑主 ...

  8. linux个人学习文档

    Linux系统基础 第1章 Linux简介 1.1开源的力量 1.1.1 我们已经用过的开源软件 1.1.2 开源软件领域的旗帜:Linux 1.1.3 软件开源的好处 1.2 Linux的来历 1. ...

  9. Linux 基础学习(笔记)

    版权声明:张宜成个人博客 转载请标明出处 https://blog.csdn.net/qq_40820862/article/details/81450567 </div><link ...

最新文章

  1. 学习Python有什么优势?
  2. cmd 查看端口占用情况
  3. C#中关键字ref与out的区别(转)
  4. Lamp的搭建--centos6.5下安装mysql
  5. 删除文件夹下面n天前时间的文件
  6. jstack会导致JVM停顿
  7. tomcat运行模式(bio,aio,apr)
  8. scala function从入门到理解
  9. FFT,NTT 专题
  10. java hibernate映射_java – Hibernate教程 – 在哪里放置映射文件?
  11. python numpy安装
  12. 解决vue项目背景图片在IE和火狐上不显示的问题
  13. 三国志战略版:Daniel_兵无常势分析
  14. Model of an Electric Arc for Circuit Analysis(翻译)
  15. Monaco Editor教程(十八):使用api来完成某些键盘操作,格式化,查找,显示右侧菜单等。
  16. RK3568 使用iperf3的丢包率测试
  17. 统计学习导论之R语言应用(四):分类算法R语言代码实战
  18. 利用matlab的interp1()对矩阵进行插值
  19. android 输入法 悬浮窗口,Android EditText悬浮在输入法之上
  20. 【Ctrl_I】团队日记2:模型训练与HIbernate集成

热门文章

  1. 关于从页面中获取用户控件中的其它控件(如DropDownList)事件的方法
  2. (互联网)Yahoo邮箱的改版
  3. PetShop 4数据库分析一
  4. R语言:绘制知识图谱
  5. r语言必学的十个包肖凯_家长专栏自闭症儿童语言康复训练
  6. python中字符串的布尔值_Python基础之字符串,布尔值,整数,列表,元组,字典,集合...
  7. my.cnf mysqld mysql_MySQL配置文件my.cnf详解【mysqld】模块(二)
  8. c++ocx交互检测弹框_吉利几何C:2022杭州亚运会移动“明信片”!
  9. android studio 单步调试jni,android studio实现Jni单步调试-标准配置教程
  10. opencv标定函数解说