gpt4 book ai didi

linux - 使用自定义环境运行脚本。变种。和没有额外外壳的工作目录

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

我正在尝试创建一个脚本来启动另一个脚本并将其直接作为子脚本。我的目标是:

  • 子程序应该看到一个不同的 $HOME
  • 子脚本应该在与当前工作目录不同的目录中运行(即不同的密码)
  • 没有多余的壳

我通过子 shell 和 exec 实现了前两个目标,但我还没有实现第三个目标。有人可以帮助我吗?

这里是详细信息。为了便于描述,我将第一个脚本称为run,将另一个程序称为sleepcmd。这是sleepcmd脚本的内容

echo $HOME && exec sleep 1000

这是运行脚本的内容

(HOME=~/foo/bar && cd $HOME/bin && ./sleepcmd)

在 ./sleepcmd 调用之前添加一个 exec,即

(HOME=~/foo/bar && cd $HOME/bin && exec ./sleepcmd)

与直接运行 sleepcmd(或 sleep )相比,只需要一个额外的 shell。

我怎样才能做得更好,摆脱 () 子 shell,同时仍然使用不同的 $HOME 和工作目录调用 sleep 1000

最佳答案

尝试

pushd
VAR=value command [args...]
popd

例如

pushd ~/foo/bar/bin
HOME=~/foo/bar ./sleepcmd
popd

关于linux - 使用自定义环境运行脚本。变种。和没有额外外壳的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13855730/

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