2.shell变量

1.注释:

shell语法使用#来注释内容:

#!/bin/bash
#这是一段注释

echo "hello world"

shell中没有多行注释,只有单行注释


2.变量类型:
  • 类型一:本地变量
    作用域是整个bash进程
    语法:name="Mike"

  • 类型二:局部变量
    作用域是当前代码段
    语法:local name="Sun"

  • 类型三:环境变量
    作用域是当前shell进程以及子进程
    语法:export name=""Dir

  • 类型四:位置变量

位置变量小样1:

name="xiaoming"
${name}haha

echo "姓名:${name}"

位置变量小样2:

#给脚本文件传递参数
#参数${0}是脚本文件名字,所以要从${1}开始取值
name=${1}
age=${2}
echo "姓名:${name},年龄:${age}"
#执行脚本,参数跟参数之间用空格间隔
./hello.sh John 19
  • 类型五:特殊变量
    ${0}该位置变量为特殊变量,表示文件名字
    $#表示参数个数,注意:写作${#}也可以,的同理
    $*表示参数列表:会将所有的参数组成一个字符串
    $@表示参数列表:所有的参数会分开
    $$表示获取当前shell的进程id
    $!表示执行上一个指令的进程id(PID)
    ${?}该位置变量表示返回上一个命令执行状态返回值
    0:表示执行成功;
    1:表示程序执行的结果;
    2:表示程序状态的返回码(0-255);
echo ${0}
echo ${?}
#下面语法错误
name = "haah"
echo ${?}

执行脚步后输出:

0
./hello.sh: line 5: name: command not found
127

3.变量定义:
  • 定义变量不适用符号,使用该符号表示取该变量的值
#定义name变量
name="xiaoming"

#取name值
$name
  • 定义变量时,变量名和=符号之间不能有空格
#错误写法⚠️
name = "xiaoming"
name ="xiaoming"
name= "xiaoming"
  • 变量名首字母必须为字母(a-z,A-Z)或者下划线
age=10

echo $age
4.只读变量:

使用关键字readonly

name="zhima"
readonly name
5.删除掉变量:

使用关键字unset

name="zhima"
unset name

你可能感兴趣的:(2.shell变量)