shell变量

种类

  • 用户自定义变量
  • 环境变量 保存和系统操作环境相关的的数据 //建议大写,便于区分
  • 位置变量 脚本当中传递参数或数据,变量名不能自定义,变量作用固定
  • 预定义变量 bash中预定义好的变量,变量名不能自定义,变量作用也是固定

用户自定义变量 -本地变量,用户任意设置,只在当前的shell生效

  • 调用 echo $name
  • 查看 set 查看所有
  • 删除 unset $name

环境变量 - 会在当前shell 和子shell 生效,写入配置文件,shell打开新终端,会在所有shell生效

  • 声明 export 变量名 = 变量值
  • 声明已有变量 export 变量名
  • 查看 env
  • 删除 unset 变量名

位置变量

  • $n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十个以上的参数用大括号包含如,${10}。
  • $* 代表命令中的所有参数,$*把所有的参数看成一个整体
  • $@ 代表命令中的所有参数,不过是把参数看成一个个个体对待
  • $# 代表命令行中的所有参数的个数

脚本一

#!/bin/bash

echo $0
echo $1
echo $2

输出结果如下 -- 运行脚本,chmod 755 赋予运行权限


shell变量_第1张图片

脚本二

#!/bin/bash

sum=$(($1+$2))
echo "sum is $sum"

输出结果


脚本三

#!/bin/bash

echo $#  #输出参数个数

for i in "$*" # 输出整体
        do
                echo "the prarm is $i"
        done

for y in "$@" #一个个输出
        do
                echo "the param is $y"
        done

输出结果


shell变量_第2张图片

预定义变量

  • $? 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则上个命令未正确执行
  • $$ 当前进程的进程号
  • $! 后台运行的最后一个进程的进程号pid
shell变量_第3张图片

接受键盘输入

  • read [选项] [变量名]
  • -p "提示信息 " 在等待read输入时,显示提示信息
  • -t 秒数 read 命令会一直等待用户输入,使用此选项可以指定等待时间
  • -n 字符数 read只接受指定字符数就会执行
  • -s 隐藏输入的数据,用于机密信息的输入
#!/bin/bash

read -t 30 -p "input something:" name
echo $name
shell变量_第4张图片

运算符

declare 声明变量的类型

  • declare +/- [选项] 变量名
    • 给变量设定类型属性
    • 给变量取消类型属性
  • -i 将变量声明为整形
  • -x 将变量声明为环境变量
  • -p 显示指定变量的被声明类型
shell变量_第5张图片

expr 加运算公式

$((运算式)) 或$[运算式]

shell变量_第6张图片

变量测试与替换

shell变量_第7张图片

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