IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 下source、sh、bash、./的本质区别及用途 -> 正文阅读

[系统运维]Linux 下source、sh、bash、./的本质区别及用途

之前也试图多次理解它们的区别,都没理解透彻,今天算是有了更清晰的认识,记录一下。首先理解这几个命令的本质区别前,先要明白进程和子进程的概念。

比如Linux 一个shell命令窗口,就是Linux系统的一个shell进程,如果打开命令窗口就是多个shell进程,每个进程都有自己独立的的环境,比如使用env命令查看到的就是当前窗口进程的环境变量。在这个窗口下通过命令运行起来的程序(比如一些Linux命令,如ls命令或./ext_file 命令,命令即程序),就是该shell窗口进程的子进程,子进程会继承父进程的环境,即继承env环境变量(非export类型的变量不继承)。

为了验证以下结论,先创建一个test.sh文件,编辑如下内容,

#加一个环境变量test,赋值666
export test=666?
#查看一下此时shell进程的环境变量
env

1. source 等价于 . 如 $ source test.sh 等价于? $ . test.sh?

执行这个命令时,并非创建子进程,test.sh内容是在当前的shell进程执行,即会在当前进程生效,执行之后,test.sh中env命令显示的是当前进程进程的环境变量,确实添加了 test=666。

用途:当前命令窗口进程添加环境变量,比如Make的编译环境配置,可以通过命令一个一个变量添加,麻烦,一般都写在xxx.sh文件中,通过 source xxx.sh统一添加。

2. ./

执行./test.sh这个命令时(先用unset test删除环境变量),会基于当前窗口shell进程,创建一个子进程,test.sh内容是在子进程中执行并生效,test.sh中的env命令显示的是子进程的环境变量,子进程中确实添加了test=666, 但此时再用命令env查看环境变量(此时是父进程),里边没有test=666变量

用途:运行程序

以上就是source与./的本质区别。

2. sh 、bash命令与./ 一样,都是创建子进程。只不过这两个专用于执行sh脚本,而./命令可用于所有可执行文件(sh、bin文件)

若理解有偏差还望补充指正!!!

参考:Linux 执行脚本时 source 和 . 和 sh 和 ./ 的区别 - 拾月凄辰 - 博客园

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 16:08:03  更:2022-05-01 16:09:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:46:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码