自定义变量
自己定义的变量
自定义变量分类:
-
自定义局部变量
-
只能在一个脚本文件中使用的变量
定义使用:
不能以数字开头
var_name=value
等号两侧不能有空格
bash中默认的类型为字符串类型,无法直接数值运算
变量值有空格,必须使用双引号
不能使用关键字
-
-
自定义常亮
-
自定义全局变量
查询变量值
1.$变量名
2.${变量名} #适合拼接字符串
变量的删除
unset 变量名
自定义常量(只读变量)
语法
readonly 变量名
父子shell环境
两个脚本文件;A.sh和B.sh;
在A的脚本中执行了B脚本文件,那么A就是父shell环境,B就是子shell环境
自定义全局变量 就是在当前脚本文件中定义的全局变量,也可以在shell子环境中使用
自定义全局变量
export var_name1 var_name2 #可以设置多个全局变量
测试全局变量在子shell中是否可以使用,
创建两个脚本文件;demo1.sh demo2.sh
编辑两个脚本文件;
在demo1中创建全局变量;在demo2 中打印全局变量;执行父shell
demo1.sh
#!/bin/bash
export var1=13
bash demo2.sh
demo2.sh
#!/bin/bash
echo $var1
特殊符号变量
常用的特殊变量
$n
$n
用于接收脚本文件执行时传入的参数;
$0,用于获取当前脚本文件名称;
$1-$9代表获取第一个参数到第9个参数
10个参数以上的格式
${数字},否者无法获取;
执行脚本文件传入参数语法
sh 脚本文件 参数1 参数2 ...
案例
打印脚本文件名字,和后面的输入参数;
#!/bin/bash
echo $0
echo $1
echo ${10}
$#
获取所有输入参数的个数;
$#
echo $#
$*
$@
上述两者的区别;
都是获取所有的输入参数,用于以后输出所有参数;(没有$0)
- 不使用双引号括起来,功能一样 ;
格式为$1 $2 ...
- 使用双引号括起来
"$*"获取的参数拼接成一个字符串"$1 $2 ..."
"$@"获取一组参数列表对象,:"$1" "$2" ..;;
使用循环打印看出区别
for var in 变量列表
do
命令
done
##结束循环
#!/bin/bash
echo "循环遍历所有参数@"
for var in "$@"
do
echo $var
done
echo "循环遍历所有参*"
echo "循环遍历所有参数*"
for var in "$*"
do
echo $var
done
e
$?
用于获取上一个shell命令的退出状态码,或者是函数的返回值
每一个shell命令都有一个返回值;
用于说明命令是否执行成功;
一般返回值为0代表成功;非0 代表失败
$$
用于获取当前shell进程的ID号
$$
标签:shell,变量,自定义,echo,sh,参数,var
From: https://blog.51cto.com/u_16182563/8163563