美文网首页
Shell基础-Bash变量

Shell基础-Bash变量

作者: nerowu | 来源:发表于2018-04-12 01:03 被阅读0次

一、变量分类
1)用户自定义变量
2)环境变量
3)位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
4)预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

二、变量设置规则
1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头。如果变量名是2name则错误的。
2)在bash中,变量的默认类型都是字符串类型。如果要进行数值运算,则必须指定变量类型为数值型。
3)变量用等号连接,等号左右两侧不能有空格!!!
4)变量的值如果有空格,需要使用单引号或双引号括。
5)在变量的值中,可以使用""转义符。
6)如果需要增加变量的值,那么可以进行变量的叠加。不过变量需要用双引号包含。如:mypath=${mypath}/mydir或者mypath="$(pwd)"/mydir或者mypath="$(pwd)/mydir"
7)命令的结果可以作为值赋于变量(mypath=$(pwd);echo $mypath),别环境变量名建议大写,便于区分。
8)调用变量:$mypath
删除变量:unset mypath
变量查看:set(查看所有变量) | grep 变量名

三、环境变量
用户自定义变量只在当前shell中生效,而环境变量会在当前shell和子shell中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效。(知识点)
声明环境变量:export JAVA_HOME
查询环境变量:env | grep 环境变量。
unset 变量名。与删除自定义变量名一样。

四、位置参数变量
$n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${11}。
vim mynote.sh
#!/bin/bash
echo $0
echo $1
echo $2
chmod 755 mynote.sh
./mynote.sh 11 22 33
类似于 main函数中的main (String[] args)

$* 代表命令行中所有参数,$*把所有参数看成一个整体。
$@ 代表命令行中所有参数,不过$@把每个参数区分对待。

$*与$@的区别
#!/bin/bash
for i in "$*"
#$*中的所有参数看成是一个整体,所以这个for循环中会循环一次
do
echo "The parameters is :$i"
done

x=1
for y in "$@"
#$@中的每个参数都看成是独立的,所以"$@"中有几个参数,就会循环几次
do
echo "The parameters is :$y"
x=$(($x+1))
done

$# 代表命令行中所有参数的个数。

五、预定义变量
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
例如:ls ; echo $?


image.png

$$ 当前进程的进程号(PID)
echo "$$"
$! 后台运行的最后一个进程的进程号(PID)
echo "$!"

相关文章

  • Shell脚本基础

    shell 基础 变量 $BASH_SOURCE[0]等价于 BASH_SOURCE, 取得当前执行的shell文...

  • Shell基础-Bash变量

    一、变量分类1)用户自定义变量2)环境变量3)位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不...

  • Shell基础--Bash变量

    一、用户自定义变量 用户自定义变量 name='zhangsan'echo$nameecho${name} 变量叠...

  • shell第11章shell脚本

    什么是shell? Bash shell: 什么是shell脚本? 变量的介绍: 普通变量介绍: 环境变量介绍: ...

  • shell快速使用笔记

    shell 脚本的第一行以:#!/bin/sh 或 #!/bin/bash 开头 基础变量 1.多行注释 2.变量...

  • shell & bash基础命令及巧用

    shell与bash脚本的区别shell是Linux基础命令解释器bash(Bourne Again shell)...

  • bash环境变量

    环境变量是全局变量 自定义变量是局部变量 bash:可以进入当前shell的子shell(当前shell指的是当前...

  • Bash变量的类型

    Bash变量的类型通常理解shell变量是弱类型的,或者无类型的,其实Bash变量是有类型的。 Bash变量一共有...

  • Shell命令

    bash   bash是lunix默认使用的shell 变量的显示与设置 变量的显示:echo变量在显示时,前面必...

  • 软件安全-ShellShock攻击

    Shellshock Attack 概述认识环境变量&&bash1.普通shell变量和bash 从上述实验中我们...

网友评论

      本文标题:Shell基础-Bash变量

      本文链接:https://www.haomeiwen.com/subject/zedtkftx.html