程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了运行存储在变量中的 bash 脚本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决运行存储在变量中的 bash 脚本?

开发过程中遇到运行存储在变量中的 bash 脚本的问题如何解决?下面主要结合日常开发的经验,给出你关于运行存储在变量中的 bash 脚本的解决方法建议,希望对你解决运行存储在变量中的 bash 脚本有所启发或帮助;

我想将路径发送到一个 bash 脚本,该脚本将一些环境变量作为参数发送给另一个 bash 脚本以运行它并使用环境变量。如果我对 bash 脚本的路径进行硬编码以运行它,并且我可以在主脚本中检索环境变量,那么它在没有参数的情况下运行良好。当我将路径作为它不想运行的参数发送时,就会出现问题。 例如,如果路径是 /path/script.bash 并且我将路径作为参数发送我得到 error 那个 /path/env_set: No such a文件或目录 我通过这一行运行脚本

. $1 (this doesn't work)
. /path/script.bash (this works)

如果我使用

bash -c $1 

bash 文件运行但它没有设置环境变量以在主脚本中使用它

我不知道为什么当我使用参数时 env_set 会替换脚本名称。是否有任何方法可以实现这一目标或任何解决方法来实现我的目标?

解决方法

听起来问题可能出在您的引用或相对路径上。

引用不仅仅与空格有关,还与路径名扩展有关(即 []?* 个字符)。

. "$1"

(不是 . $1

请记住,如果您为环境脚本提供了一个相对路径(或者那个 脚本使用了一些相对路径),那么您就会遇到问题。这些路径与 pwd 相关 - 即您在执行主脚本时碰巧所在的位置(例如,不是任何脚本文件本身所在的位置)。

最后,您可以通过在开始时抛出 echo 并运行脚本来调试此问题(如果这样做是安全的): 回声。 “$1” exit # 如果您不想在没有 vars 的情况下运行,请在此处添加 exit。 现在您可以看到您实际尝试获取的内容。

,

在脚本 1 的主代码中,您可以调用和运行脚本 2, . ./script 2

第一个。代表当前外壳,第二个 .用于当前目录。

它将为您创建环境变量,并在同一终端中配置任何其他设置。 之后,当脚本 2 运行完毕后,脚本 1 将继续运行,并且您在脚本 2 中创建的环境变量将可供脚本 1 访问以在同一会话中使用。

大佬总结

以上是大佬教程为你收集整理的运行存储在变量中的 bash 脚本全部内容,希望文章能够帮你解决运行存储在变量中的 bash 脚本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。