【问题标题】:Linux how to run bash script from new environment? [closed]Linux 如何从新环境运行 bash 脚本? [关闭]
【发布时间】:2021-02-28 12:43:13
【问题描述】:

如何从新环境运行 bash 脚本?

我尝试这样做,但它不起作用

#!/bin/bash

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/dell/srvadmin/sbin:/root/bin"

racadm getsvctag > /root/Desktop/serialTest.txt

【问题讨论】:

  • 确保将文件保存为 filename.bash。您得到的错误是什么以及来自哪一行?尝试使用 bash -x filename.bash 执行它,这样您就可以看到执行中出了什么问题。
  • 补丁?你是说 PATH?
  • its not working 你怎么知道它“不工作”?你是什​​么意思。请更具体。创建一个minimal reproducible example - 其中包括发布您的程序的实际输出以及您希望您的程序做什么。
  • @ArkadiuszDrabczyk 哦,谢谢,它解决了问题

标签: linux bash shell centos sh


【解决方案1】:

以下不是一个合适的解决方案,但无论如何,这是一种运行不同版本的解释器(bash、python、php...)并使其可移植的方法。它只适用于相同架构的其他机器。

将解释器二进制文件复制到您的工作文件夹中:

sudo cp /bin/bash .

拥有它并使其可执行:

sudo chmod 777 bash

测试脚本,从当前目录调用解释器:

#!./bash
echo "Hello"
// Output Hello

具有良好文档的更好解决方案可以是工具 linuxdeploy 和/或 appimage,这是在后台使用此方法。

https://github.com/linuxdeploy/linuxdeploy

https://appimage.org/

【讨论】:

    【解决方案2】:

    如果您将 shebang 行替换为以下内容,您可以在新环境中运行 bash 脚本:

    #!/usr/bin/env bash
    

    你不是说PATCH 变量是PATH 变量吗?

    注意:如果您导出变量,它将在系统范围内可用。

    【讨论】:

    • env 的参数应该是简单的bash。硬编码路径是对您首先使用 env 的原因的诅咒。
    猜你喜欢
    • 2017-12-25
    • 1970-01-01
    • 2021-06-23
    • 2012-05-21
    • 2021-01-29
    • 1970-01-01
    • 2013-02-05
    • 2015-12-05
    • 2011-02-12
    相关资源
    最近更新 更多