在 SHELL 脚本中调用另一个 SHELL 脚本(报错: go: not found)

news2024/12/23 5:44:09

文章目录

  • 在 SHELL 脚本中调用另一个 SHELL 脚本(报错: go: not found)
    • 在 SHELL 脚本中调用另一个 SHELL 脚本
    • 一个脚本sudo调另外一个脚本,报错(报错: go: not found)

在 SHELL 脚本中调用另一个 SHELL 脚本(报错: go: not found)

在 SHELL 脚本中调用另一个 SHELL 脚本

在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh;这三种方法有什么不同呢?
在这里插入图片描述

一个脚本sudo调另外一个脚本,报错(报错: go: not found)

问题:
A 脚本调 B脚本,如下:sudo ./build.sh 报错 B脚本中的 ./build.sh: 5: go: not found。
但是单独运行B脚本没有问题。

问题分析:
这个问题可能的原因是:

  1. A脚本和B脚本使用了不同的环境变量配置
    可能A脚本执行时修改或重置了环境变量,导致B脚本运行时无法找到go执行环境。
    可以在A脚本末尾打印出PATH变量,然后再运行B脚本,看PATH变量是否被改变。
    也可以尝试在A脚本执行后手动将PATH重置到原来状态。
  2. A脚本切换了用户身份
    一些脚本会用su或sudo来切换用户,从而切换到一个不同的执行环境。
    可以检查下A脚本是否切换了用户,如果是的话,需要保证切换后的用户也能找到go执行环境。
  3. A脚本中执行了chroot等操作
    如果A脚本执行了chroot等操作,可能会使B脚本运行在一个被隔离的环境中,从而找不到命令。

使用 sudo 会切换到 root 用户身份执行脚本,而 root 用户默认情况下并没有配置 GO 相关的环境变量。
可以检查一下:

  • sudo env 查看环境变量,是否存在 GO 相关的配置
  • which go 在 sudo 下是否能找到 go 命令
    执行 sudo which go 反而找不到go了

解决方法是:

  1. 不使用 sudo 执行 A 脚本,而是提前配置好用户权限,直接用普通用户执行
  2. 在 sudo 前面保留用户环境变量,例如:
sudo env "PATH=$PATH" ./A.sh 
  1. 为 root 用户配置 GO 相关环境变量
  2. 在 A 脚本中使用 su 切换用户,而不是 sudo
    使用 sudo 执行脚本时,会切换到 root 用户身份,这个环境默认情况下可能没有配置相关的环境变量和命令路径。
    而使用 su 切换用户可以保留更多原始用户的环境配置。

总之,需要确保在 A 脚本中切换的用户环境下,也能正常找到 go 命令执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/868932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LNMP简易搭建

目录 前言 一、拓扑图 二、NGINX配置 三、配置MySQL 四、配置php环境 五、部署应用 总结 前言 LNMP平台指的是将Linux、Nginx、MySQL和PHP(或者其他的编程语言,如Python、Perl等)集成在一起的一种Web服务器环境。它是一种常用的开发和部署网…

Linux使用gdb调试多文件的C程序

【例】通过vi创建两个.c文件main.c和add.c: 一步编译main.c和add.c文件,并加入调试信息: 1. 在被调函数中加断点时,在执行主函数时,会自动进入被调函数 (1)进入gdb,跟踪main程序&am…

python——案例17:判断某年是否是闰年

案例17:判断某年是否是闰年 判断依据:闰年就是能被400整除,或者能被4整除的年份numint(input(输入年份:))if num%1000: if num%4000: #整百年份的判断print("%s年是闰年"%num) #…

智能优化算法:登山队优化算法-附代码

智能优化算法:登山队优化算法 文章目录 智能优化算法:登山队优化算法1.登山队优化算法1.1 初始化1.2 协作登山1.3灾害威胁1.4协调防御1.5队员更新 2.实验结果3.参考文献4.Matlab5.python 摘要:MTBO 算法是 Faridmehr 等人于 2023 年受登山队员…

【智力悬疑题】——【“找凶手”解法】

“找凶手”题目解法 “案件题目”💻 某地发生了一起凶杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说。 已知3个…

vue3+vite在main.ts文件中引入./App.vue报错(./App.vue不是模块)

问题 如下图: 方法一 下载TypeScript Vue Plugin (Volar)插件就不报红了,看它的描述应该就是ts文件可以识别vue文件。 方法二 在src文件夹下添加env.d.ts文件,添加以下代码: declare module *.vue {import type { DefineC…

Android系统-进程-Binder2-Java层

引言: 对于Android系统,一般是从java层到native层,再到kernel驱动层,形成一个完整的软件架构。Android系统中的Binder IPC通信机制的整体架构,从java层到底层驱动层是怎么样的一个架构和原理的呢? 概念与…

详解单链表

💕十载寒窗无人问,一举成名天下知💕 作者:Mylvzi 文章主要内容:程序环境和预处理 引言: 我们之前已经学习过顺序表,顺序表是一种线性的存储结构,它在内存中是连续存放的&#xff1…

《Java-SE-第三十五章》之方法引用

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

微服务实战项目-学成在线-项目部署

微服务实战项目-学成在线-项目部署 1 什么是DevOps 一个软件的生命周期包括:需求分析阶、设计、开发、测试、上线、维护、升级、废弃。 通过示例说明如下: 1、产品人员进行需求分析 2、设计人员进行软件架构设计和模块设计。 3、每个模块的开发人员…

Vue3实现图片懒加载及自定义懒加载指令

Vue3实现图片懒加载及自定义懒加载指令 前言1.使用vue-lazyload/vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse工具集2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式,它只去加载可视区域图片,而不是在网页加载完毕…

直线电机模组在3C电子行业中的重要应用

直线模组的种类有很多,是自动化行业中必不可少的传动元件,其中丝杆模组和同步带模组的应用率比较高,但随着自动化领域的迅速发展,高精密直线电机模组也得到了广泛的应用,尤其是在电子行业中的应用。 3C电子产品在我们的…

Redis数据一致性问题的三种解决方案

Redis数据一致性问题的三种解决方案 1、首先redis是什么 Redis(Remote Dictionary Server ),是一个高性能的基于Key-Value结构存储的NoSQL开源数据库。大部分公司采用Redis来实现分布式缓存,用来提高数据查询效率。 2、为什么会选Redis 在…

vue全局组件自动注册直接使用,无需单独先引用注册再使用

目录结构: 本案例是在根目录下components文件夹测试的,文件位置项目内任意,确保在main.js挂载路径正确即可 1、新建文件夹(名字随意)zxy_components (放自己组件的地方) 2、在zxy_components文件夹下 !新建…

中科亿海微FIFO使用

引言 FPGA(现场可编程门阵列)是一种可编程逻辑器件,具有灵活性和可重构性,广泛用于数字电路设计和嵌入式系统开发。在FPGA中,FIFO(First-In, First-Out)是一种常见的存储器结构,用于…

Vue3 Props组件简单应用(父组件获取子组件数据)

去官网学习→Props | Vue.js 运行示例&#xff1a; 代码&#xff1a;App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据&#xff1a;{{ content }}</h4>…

OpenCV实例(九)基于深度学习的运动目标检测(一)YOLO运动目标检测算法

基于深度学习的运动目标检测&#xff08;一&#xff09; 1.YOLO算法检测流程2.YOLO算法网络架构3.网络训练模型3.1 训练策略3.2 代价函数的设定 2012年&#xff0c;随着深度学习技术的不断突破&#xff0c;开始兴起基于深度学习的目标检测算法的研究浪潮。 2014年&#xff0c;…

软考高项-思维导图31-33(计算机高级系统项目管理师)

陆续更新一些软考高项的思维导图&#xff0c;都是一些必背知识点&#xff0c;希望可以帮助大家早日考过高项&#xff0c;早日当上高工&#xff0c;早日成为杭州E类人才。全部完整导图快速获取链接&#xff1a;计算机高级系统项目管理师-思维导图汇总 三十一、范围确认 三十二、…

MySql(干货)

写这篇博客的目的不是为了将介绍原理&#xff0c;而是为了Sql中的代码操作属实太多了&#xff0c;在这里进行一个汇总&#xff0c;方便查阅&#xff01;&#xff01;&#xff01; Sql分类 分类全称说明 DDL Data Definintion Language数据定义语言&#xff0c;用来定义数据库对…

Linux命令200例:pwd用于显示当前工作目录的绝对路径

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…