当前位置:网站首页>shell 变量 入门

shell 变量 入门

2022-06-25 13:32:00 响彻天堂丶

1 自定义全局变量

2.1 父子Shell环境介绍

例如: 有2个Shell脚本文件 parent.sh 和 child.sh

如果 在 parent.sh 脚本文件中执行了child.sh脚本文件, 那么parent.sh就是父Shell环境, child.sh就是子Shell环境

2.2 自定义全局变量介绍

就是在当前脚本文件中定义全局变量, 这个全局变量可以在当前Shell环境与子Shell环境中都可以使用

2.3 自定义全局变量语法

export var_name1 var_name2

2.4 DEMO

测试全局变量在子Shell中是否可用, 在父Shell中是否可用

1: 创建2个脚本

touch parent.sh
touch child.sh

2:修改parent脚本文件

vi parent.sh

#!/bin/bash
name="parentName"
export name
#调用子脚本文件
sh child.sh

3: 修改child脚本文件

vi child.sh

#!/bin/bash
echo "parent 中定义的name: ${name}"

4: 执行父脚本

sh parent.sh

5: 结果
在这里插入图片描述

2 特殊变量 $n

2.1 语法

$n

2.2 含义

用于接收脚本文件执行时传入的参数
$0 用于获取当前脚本文件名称的
$1~$9, 代表获取第一输入参数到第9个输入参数
第10个以上的输入参数获取参数的格式: ${
    数字}, 否则无法获取

2.3 执行脚本文件传入参数语法

sh 脚本文件 parm1 parm2 ...

2.4 demo

创建脚本文件demo.sh文件, 并在脚本文件内部执行打印脚本文件名字, 第一个输入参数, 第二个输入参数

vim demo.sh

#!/bin/bash

#打印当前脚本文件名称
echo "当前脚本文件名称: ${0}"
#打印输入参数
echo "第一个输入参数: ${1}"
echo "第二个输入参数: ${2}"

执行:

在这里插入图片描述

3 特殊符号变量 $#

3.1 语法

$#

3.2 含义

获取所有输入参数的个数

3.3 demo

打印demo.sh输入参数的个数。

vim demo.sh


#!/bin/bash

#打印当前脚本文件名称
echo "当前脚本文件名称: ${0}"

#输入参数的个数为
echo "输入参数的个数为: ${#}"


#打印输入参数
echo "第一个输入参数: ${1}"
echo "第二个输入参数: ${2}"


在这里插入图片描述

4 特殊变量 $* [email protected]

4.1 语法

$*[email protected]

4.2 含义

1.不使用双引号括起来, 功能一样
  $*[email protected]获取所有输入参数,格式为: $1 $2 ... $n
2.使用双引号括起来
  "$*"获取的所有参数拼接为一个字符串, 格式为: "$1 $2 ... $n"
  "[email protected]"获取一组参数列表对象, 格式为: "$1" "$2" ... "$n"
  使用循环打印所有输入参数可以看出区别

循环语法:

for var in 列表变量
do		# 循环开始
   命令  # 循环体
done    # 循环结束

4.3 demo

在demo.sh中循环打印输出所有输入参数, 体验$*[email protected]的区别

#!/bin/bash

#打印当前脚本文件名称
echo "当前脚本文件名称: ${0}"
#输入参数的个数为
echo "输入参数的个数为: ${#}"
#输出所有输入后的参数
echo '使用$*直接输出:' ${
    *}
echo '使用[email protected]直接输出:' ${
    @}
#循环输出
echo '循环遍历输出$*所有参数:'
for temp in "$*"
do
echo ${
    temp}
done

echo '循环遍历输出[email protected]所有参数:'
for temp in "[email protected]"
do
echo ${
    temp}    
done

在这里插入图片描述

5 特殊符号变量 $?

5.1 命令

$?

5.2 含义

用于获取上一个Shell命令的退出状态码, 或者是函数的返回值

5.3 demo

在这里插入图片描述

原网站

版权声明
本文为[响彻天堂丶]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_34125999/article/details/125436130