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 赋予运行权限


脚本二

#!/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

输出结果


预定义变量

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

接受键盘输入

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

read -t 30 -p "input something:" name
echo $name

运算符

declare 声明变量的类型

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

expr 加运算公式

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

变量测试与替换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文转载自Hello,Barry的shell变量详解1 shell变量基础shell变量是一种很“弱”的变量,默认...
    hchencoder阅读 362评论 0 2
  • bash中,所有变量的值默认均为字符串。 1. 变量操作 调用变量 查看变量(所有类型) 删除变量 2. 变量分类...
    yuanzicheng阅读 744评论 0 49
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,205评论 2 33
  • 1.Shell定义变量 Shell定义一个变量不用声明,但是要注意的几点 :1. 首个字符必为字母。 2. 中间不...
    spfanlost阅读 232评论 0 0
  • 前言 谷歌刚刚发布了Android O技术预览版,为了提升续航和减少耗电,Android进一步限制了后台服务的运行...
    客家小罗阅读 7,255评论 1 14