gpt4 book ai didi

linux - 使用 `sh -cx` 导出脚本变量

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:17 26 4
gpt4 key购买 nike

我尝试通过以下方式从脚本导出变量:


sh -xc "<script here>"

但根本无法让它工作。我尝试了多种技术,例如:


sh -xc "./xxx.sh"
(从文件本身导出变量 yyy)


sh -xc "./xxx.sh && export yyy=1"
(xxx.sh 退出 0)


sh -xc ". ./xxx.sh"

以及上述的几种排列,但其中任何一个都没有骰子。

不幸的是,我必须遵守sh -xc "<script here>"风格。我执行的任何脚本都将放置在引号、文件和/或命令中。没有办法解决这个问题。

我问的问题可能吗?如果是这样,怎么办?

谢谢!

最佳答案

您无法通过 shell 脚本进行导出,因为 shell 脚本在子 shell 进程中运行,并且只有子 shell 的子进程才会继承导出。

使用source的原因是为了让当前shell执行命令

将导出命令放置在诸如 .bashrc 这样的文件中是很常见的,bash 在启动时会获取该文件(或其他 shell 的类似文件)

但您可以执行以下操作:

shell$ cat > script.sh
#!/bin/sh
echo export myTest=success

chmod u+x script.sh

然后让当前 shell 执行该输出

  shell$ `./script.sh`

shell$ echo $myTest
success

shell$ /bin/sh
$ echo $myTest
success

关于linux - 使用 `sh -cx` 导出脚本变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21899762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com