使用 'sh -cx' 导出脚本变量



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

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 的子进程才会继承导出。

使用源代码的原因是让当前 shell 执行命令

导出命令放在一个文件中是很常见的,例如 bash 将在启动时获取的.bashrc(或其他 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

相关内容

  • 没有找到相关文章

最新更新