./test.sh 和 . test.sh的区别,案例分析

这篇具有很好参考价值的文章主要介绍了./test.sh 和 . test.sh的区别,案例分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. . test.sh

test.sh

#!/bin/bash

declare -A myMap
myMap["key1"]="value1"
myMap["key2"]="value2"
myMap["key3"]="value3"


for key in "${!myMap[@]}"; do
    echo "Key: $key, Value: ${myMap[$key]}"
done  

执行 . test.sh输出如下:

root@hg-pc:/home/hg/Desktop# . test.sh 
Key: key2, Value: value2
Key: key3, Value: value3
Key: key1, Value: value1

此时,修改test.sh,将赋值操作全部去掉,同样执行 . test.sh

```bash
#!/bin/bash

declare -A myMap

for key in "${!myMap[@]}"; do
    echo "Key: $key, Value: ${myMap[$key]}"
done  

输出如下:

root@hg-pc:/home/hg/Desktop# . test.sh 
Key: key2, Value: value2
Key: key3, Value: value3
Key: key1, Value: value1

myMap明明是个空的,为什么还能打印出数据???
使用点号(.)和空格来执行一个脚本,后面跟着脚本的文件名。这种方式在Shell中被称为“点命令”(Dot command)或“source”命令。它的作用是在当前Shell环境中执行指定的脚本。也可以使用source test.sh来实现相同的效果。使用. test.sh执行脚本时,脚本文件会在当前Shell环境中执行,不会创建新的子进程。脚本文件中的环境变量和函数会影响到当前Shell的环境。这种执行方式通常用于加载配置文件或在当前Shell中定义函数和变量。

也可以这么理解,第一次执行赋值后,哪怕第二次把赋值操作给去了,它也能打印出数据,因为隶属于同一个终端,,,
此时开启一个新的终端,再次执行 . test.sh,可以看出,,没有任何输出。。。

root@hg-pc:/home/hg/Desktop# . test.sh 
root@hg-pc:/home/hg/Desktop# 

2. . /test.sh

#!/bin/bash

num=23
echo "### ${num}"
root@hg-pc:/home/hg/Desktop# . test.sh
### 23

第一次执行后, 这个num在当前终端中始终存在。


#!/bin/bash

echo "### ${num}"
root@hg-pc:/home/hg/Desktop# . test.sh 
### 23

所以即使此处直接输出num,也还能打印出值。




下面来看 ./test.sh

开启一个新终端,命名为2号终端。

#!/bin/bash

num=23
echo "### ${num}"
root@hg-pc:/home/hg/Desktop# ./test.sh 
### 23


仍然在2号终端中执行。

#!/bin/bash

echo "### ${num}"
root@hg-pc:/home/hg/Desktop# ./test.sh 
### 

使用./test.sh执行脚本时,Shell会创建一个子进程来执行脚本文件。脚本文件中的环境变量和函数在子进程中生效,但不会影响到当前Shell的环境文章来源地址https://www.toymoban.com/news/detail-544649.html



总结:./test.sh是在子进程中执行脚本文件,而 test.sh是在当前Shell环境中执行脚本文件。

到了这里,关于./test.sh 和 . test.sh的区别,案例分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • spark案例分析-搜索引擎日志分析案例

    spark案例分析-搜索引擎日志分析案例

    1.业务分析 2.数据截图 3.代码实现:         main.py:         defs.py:

    2024年02月08日
    浏览(13)
  • Shell脚本开发:printf和test命令的实际应用

    目录 Shell printf 命令 打印简单文本 Shell test 命令 1、文件测试 2、字符串比较 3、整数比较 逻辑运算: 当你使用Shell中的printf命令时,它可以帮助你格式化和输出文本。 打印简单文本 这将简单地打印字符串\\\"Hello, World!\\\",并在末尾添加一个换行符n来换行。 当你使用Shell中的t

    2024年02月10日
    浏览(11)
  • 对应分析介绍及SPSS案例分析

    对应分析介绍及SPSS案例分析

    在开展统计分析的过程中,分类变量(定序和定类变量)是我们研究的一个重点。通常我们分析分类变量间关系时,最常用的分析方法是卡方检验,其次是逻辑回归和对数线性模型等。 如果类别变量的分类较少,我们可以通过卡方检验判断行变量和列变量间是否相互独立,同

    2024年02月13日
    浏览(14)
  • python案例讲解视频,python简单案例分析

    python案例讲解视频,python简单案例分析

    大家好,给大家分享一下python案例讲解视频,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!   前言 Python 是一种面向对象、解释型、弱类型的脚本语言,它也是一种功能强大而完善的通用型语言。 相比其他编程语言(比如 Java),Python 代码非常简单,上手

    2024年04月11日
    浏览(12)
  • C++软件分析工具案例分析集锦汇总

    本文是 C++常用软件分析工具从入门到精通案例集锦 专栏的导航贴( 点击链接,跳转到专栏主页,欢迎订阅,持续更新… )。 专栏介绍 :根据近几年C++软件异常排查的项目实践,详细地讲述如何使用PE工具、Dependency Walker、GDIView、Process Explorer、Process Monitor、API Monitor、Clum

    2024年02月11日
    浏览(14)
  • Python案例分析|文本相似度比较分析

    Python案例分析|文本相似度比较分析

     本案例通过设计和实现有关文本相似度比较的类Vector和Sketch,帮助大家进一步掌握设计Python类来解决实际问题的能力。 通过计算并比较文档的摘要可实现文本的相似度比较。 文档摘要的最简单形式可以使用文档中的k-grams(k个连续字符)的相对频率的向量来表示。假设字符

    2024年02月16日
    浏览(14)
  • python数据分析案例——天猫订单综合分析

    python数据分析案例——天猫订单综合分析

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 什么是数据分析 明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论 准备 环境使用: 在开始写我们的代码之前,我们要准备好运行代码的程序 Anaconda (python3.9) – 识别我们写的代码 开发工

    2024年02月03日
    浏览(20)
  • C++常用软件分析工具案例分析集锦汇总

    本文是 C++常用软件分析工具从入门到精通案例集锦 专栏的导航贴( 点击链接,跳转到专栏主页,欢迎订阅,持续更新… )。 专栏介绍 :根据近几年C++软件异常排查的项目实践,详细地讲述如何使用PE工具、Dependency Walker、GDIView、Process Explorer、Process Monitor、API Monitor、Clum

    2024年02月11日
    浏览(12)
  • 软考案例分析真题

    软考案例分析真题

    1、 试题一(25分) 系统集成A公司中标某市智能交通系统建设项目。李总负责此项目的启动工作,任命小王为项目经理。小王制定并发布了项目章程,其中明确建设周期为1年,于2018年6月开始。 项目启动后,小王将团队分为了开发实施组与质量控制组,分工制订了范围管理计

    2024年02月11日
    浏览(11)
  • 案例分析真题-信息安全

    案例分析真题-信息安全

    【问题1】 【问题2】 【问题3】 【问题1】 【问题2】 【问题3】 【问题1】 【问题2】 【问题3】 骚戴理解 :这个破题目完全考的知识储备,不知道的连手都动不了,没法分析 【问题1】 骚戴理解 :这里很容易想到口令认证太简单的,容易破解,不安全,公钥认证复杂,安全

    2024年02月07日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包