linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量

简介:

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

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















本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1863045 ,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 安全 Shell
【Shell 命令集合 系统设置 】Linux 置环境变量 grpunconv命令 使用指南
【Shell 命令集合 系统设置 】Linux 置环境变量 grpunconv命令 使用指南
32 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 置环境变量 grpconv命令 使用指南
【Shell 命令集合 系统设置 】Linux 置环境变量 grpconv命令 使用指南
28 0
|
1月前
|
存储 安全 Linux
Linux环境变量:不可或缺的系统组成部分
Linux环境变量:不可或缺的系统组成部分
39 0
|
1月前
|
Ubuntu 安全 Unix
【Linux学习】零基础学习Linux
【Linux学习】零基础学习Linux
|
1月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
1月前
|
存储 Linux Shell
Linux--环境变量
Linux--环境变量
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】⭐ Linux 取消或删除已设置的环境变量 unset命令 使用指南
【Shell 命令集合 系统设置 】⭐ Linux 取消或删除已设置的环境变量 unset命令 使用指南
41 0
|
1月前
|
存储 Linux 编译器
Linux 交叉编译第三方库需要设置的环境变量
Linux 交叉编译第三方库需要设置的环境变量
23 0
|
2天前
|
消息中间件 Unix Linux
Linux的学习之路:17、进程间通信(1)
Linux的学习之路:17、进程间通信(1)
17 1
|
2天前
|
存储 安全 Linux
Linux的学习之路:9、冯诺依曼与进程(1)
Linux的学习之路:9、冯诺依曼与进程(1)
17 0