当前位置:网站首页>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

边栏推荐
- K-line diagram 24 classic diagrams (shadow)
- 启牛是正规的吗?股票开户安全吗?
- 历史上的今天:网易成立;首届消费电子展召开;世界上第一次网络直播
- Dialogue: recommended system quick start route and summary of knowledge points
- Websocket -- reverse proxy to solve cross domain problems
- Rust, le meilleur choix pour un programmeur de démarrer une entreprise?
- The starting point for learning programming.
- 如何在 2022 年为 Web 应用程序选择技术堆栈
- How unity makes the UI intercept click events
- 解决报错:Creating window glfw ERROR: GLEW initalization error: Missing GL version
猜你喜欢

Deeply understand the mathematics behind deep neural networks (mysteries of neural networks Part I)

一次性讲清楚 Handler 可能导致的内存泄漏和解决办法 | 开发者说·DTalk

对白:推荐系统快速入门路线及各知识点总结

分类器与cross entropy loss函数

‘nvidia-smi‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

"Mobile cloud Cup" computing power network application innovation competition is in hot registration!

leetcode:456. 132 模式【单调栈】

测一测你的挣钱能力有多强?未来的你将从事什么职业?

Rust,程序員創業的最佳選擇?

多台云服务器的 Kubernetes 集群搭建
随机推荐
论文阅读:Graph Contrastive Learning with Augmentations
网络远程访问的方式使用树莓派
Beego--- notes
Intercept based on byte length
Explication d'un problème de manuel
Cesium--- figure loading
As a software testing engineer, how do you think to ensure software quality?
Nr-arfcn and channel grid, synchronous grid and GSCN
BACnet gateway bl103 for building automation
Rust, le meilleur choix pour un programmeur de démarrer une entreprise?
leetcode:918. Maximum sum of circular subarray [reverse thinking + maximum subarray sum]
英语中的九大词性与九大时态
Prototype and prototype chain - constructor and instanceof
"Mobile cloud Cup" computing power network application innovation competition is in hot registration!
多臺雲服務器的 Kubernetes 集群搭建
Is it safe for Guosen Securities to open an account?
一次性讲清楚 Handler 可能导致的内存泄漏和解决办法 | 开发者说·DTalk
Implementation of a small book system
OpenStack学习笔记(二)
Discriminative v.s.Generative