1:自定义变量 如下图所示
2:交互式定义变量
语法:read 参数 "提示语:" 变量 例如:read -p "输入你们年龄:" AGE
参数使用案例:-p:定义提示用户的信息
-n:定义字符数(限制变量的长度)
-s:不显示输出内容
-t:定义超时时间 默认为秒()限制用户输出的时间
从文件获取内容复制给一个变量
read -p "从文件中获取内容:" content < file1.txt 如下图所示
3:定义一个固定类型的变量
语法:declare 参数 变量=变量值
参数:-i:将变量看成整数 例如:declare -i T=254
-r:只读变量 declare -r T=254 表示不可改变
-x:将变量通过环境到处 declare -x T=254 等价于 export T=254
通常用于配置环境变量
4:变量分成 本地变量,环境变量,全局变量,系统变量
本地变量:前面所说的定义变量的方式都属于本地变量 作用域仅作用当前进程中有效
即只是作用于 当前用户的作用域,例如当前时 root 用户操作 则切换其他用户
则不可操作相关的变量
环境变量:本地变量差不多但是环境变量可以作用给该进程的子进程
查看环境变量 env 或者 set
全局变量:任何用户或进程都可以使用 一般放置在 /etc/proofile文件中
此文件是所有的用户公用的环境变量
系统变量:此概念是没有作用域的,是当前某个shell脚本已经定义完成的变量
我们称为系统变量 (此处非常重要************** 关系到往后写脚本)
内置变量: 含义
$?: 执行上一条命令后返回的状态 0:执行正常 非0:执行异常
例如 在安装yum 源时先检查后安装 可以使用此命令
$0: 表示当前脚本名称
$#:脚本后接的参数的个数
$*:脚本后所有的参数,当作一个整体输出 每个变量以" " 隔开
$1-$9:脚本后面的位置参数 $1 表示第一个参数 依次后移 如超出9 则用 ${10} 表示
以上命令的使用 一般在shell脚本中使用
#!/bin/env bash
# name:lvdingqiang
# desc:获取本机IP地址和子网掩码
# use:
# 授予执行权限 chmod +x /shell/demo.sh
# 执行脚本 /shell/demo.sh
echo $(ip addr| grep global| cut -d "/" -f1|cut -d "t" -f2|tr -d " ")
# 查看上条命令是否执行成功
echo "查看上条命令是否执行成功: " $?
# 获取脚本名称
ech "获取脚本名称: " $0
# 获取脚本后接参数的个数
echo "获取脚本后接参数的个数: " $#
# 输出整个脚本所有的参数
echo "输出整个脚本所有的参数: " $*
# 输出脚本参数 后第一个参数
echo "输出脚本参数 后第一个参数: " $1
# 输出脚本参数后第11个参数
echo "输出脚本参数后第11个参数: " ${11}
创建脚本 vi /home/shell/test2.sh 将上面代码复制到脚本中
使用标准方式
授权执行权限:chmod +x /home/shell/test2.sh
执行脚本命令: /home/shell/test2.sh a b c d 1 2 3 4 5 6 7 8 9 89
创作不易 如果感觉能帮到你 帮助点赞一下表示支持