全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Shell中变量作用域的介绍与使用命令

前言

众所周知Shell 中的变量只作用于当前进程。如需在子进程中创建副本可使用 export 内建命令。 有时使用临时变量语法可以非常方便。

变量使用

  • 任何地方都可以定义 Shell 变量,使用 = 分隔变量名和变量值。= 前后不可出现空格,但变量的值可以留空。
  • 读取变量需要添加$前缀。
  • 变量作用域为当前进程。

例如:

url=http://harttle.com
echo $url

export 到子进程

通常变量是不需要 export 的,但是当你需要把一个工作分割成若个小的任务, 分别用一个脚本来实现的时候,就需要把变量名传递给它们。 比如有一个 spider.sh 来获下载任意 URL 到临时目录:

#!/usr/bin/env bash
curl $url > $TMPDIR/$RANDOM.html

我们需要将当前脚本中的 url 传递给spider.sh:

export url=http://harttle.com
bash ./spider.sh
# 等价于(如果该文件有可执行权限的话)
./spider.sh

值得注意的是export只会在子进程中创建变量的副本,即spider.sh对它的改动不会体现在当前进程。

在当前进程执行脚本

使用 source 或 . 内建命令可以在当前进程执行另一个脚本,因此当前上下文的变量对该脚本是可见的。

url=http://harttle.com

source ./spider.sh
# 等价于
. ./spider.sh

临时设置环境变量

根据 Shell 语法,在一个简单命令前可以包含任意个赋值语句。这些变量赋值将会在执行命令前展开,等效于临时的环境变量。

A “simple command” is a sequence of optional variable assignments and redirections, in any sequence, optionally followed by words and redirections, terminated by a control operator. – Simple Commands, Shell Commands

例如下面命令可以把url变量传递给spider.sh:

url=http://harttle.com bash ./spider.sh

这是一条 简单命令,下面的多条命令或 组合命令:

url=http://harttle.com; bash ./spider.sh   # 两条命令,只作用于当前进程
url=http://harttle.com && bash ./spider.sh  # 组合命令,只作用于当前进程
export url=http://harttle.com; bash ./spider.sh # 两条命令,作用于父子进程

简单命令中的变量赋值也不作用于当前进程。例如下面的代码将会输出空行:

url=http://harttle.com echo $url

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# shell变量的作用域  # shell  # 变量作用域  # 作用域  # linux shell自定义函数(定义、返回值、变量作用域)介绍  # linux shell 自定义函数方法(定义、返回值、变量作用域)  # 只作  # 会在  # 两条  # 内建  # 作用于  # 的是  # 这是  # 变量名  # 也不  # 将会  # 不需要  # 当你  # 这篇文章  # 谢谢大家  # 如需  # 体现在  # 来实现  # 该文件  # 众所周知  # 多条 


相关文章: ,如何利用word制作宣传手册?  如何在Tomcat中配置并部署网站项目?  建站主机SSH密钥生成步骤及常见问题解答?  php json中文编码为null的解决办法  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何在Windows服务器上快速搭建网站?  在线教育网站制作平台,山西立德教育官网?  如何通过VPS搭建网站快速盈利?  小型网站制作HTML,*游戏网站怎么搭建?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  制作销售网站教学视频,销售网站有哪些?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  网站制作企业,网站的banner和导航栏是指什么?  股票网站制作软件,网上股票怎么开户?  css网站制作参考文献有哪些,易聊怎么注册?  制作农业网站的软件,比较好的农业网站推荐一下?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  为什么Go需要go mod文件_Go go mod文件作用说明  海南网站制作公司有哪些,海口网是哪家的?  英语简历制作免费网站推荐,如何将简历翻译成英文?  MySQL查询结果复制到新表的方法(更新、插入)  如何快速查询网址的建站时间与历史轨迹?  如何自定义建站之星网站的导航菜单样式?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在阿里云完成域名注册与建站?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何快速生成可下载的建站源码工具?  如何快速重置建站主机并恢复默认配置?  建站主机类型有哪些?如何正确选型  如何通过虚拟主机快速搭建个人网站?  建站之星安装模板失败:服务器环境不兼容?  金*站制作公司有哪些,金华教育集团官网?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  ,在苏州找工作,上哪个网站比较好?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在景安服务器上快速搭建个人网站?  如何通过wdcp面板快速创建网站?  小建面朝正北,A点实际方位是否存在偏差?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  视频网站制作教程,怎么样制作优酷网的小视频?  如何获取免费开源的自助建站系统源码?  香港服务器WordPress建站指南:SEO优化与高效部署策略  广东企业建站网站优化与SEO营销核心策略指南  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  大同网页,大同瑞慈医院官网?  建站之星×万网:智能建站系统+自助建站平台一键生成  如何在阿里云高效完成企业建站全流程?  宝塔新建站点为何无法访问?如何排查? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。