gpt4 book ai didi

shell - 如何打开 shell 然后在其中执行命令

转载 作者:行者123 更新时间:2023-12-04 03:17:04 25 4
gpt4 key购买 nike

我想要的是打开默认 shell,然后调用另一个并在那里执行命令。

正在尝试这样的事情:

c:/Windows/System32/bash.exe -c "zsh & zstyle"

cmd/k "c:/Windows/System32/bash.exe -c zsh"& zstyle - 这个打开的 shell 但不运行命令

c:/Windows/System32/bash.exe -c "zsh -c 'zstyle'"

目前我正在使用 Windows 的 cmder/conemu 终端。

最佳答案

不幸的是,使用 -c 将启动命令传递给 zsh 并保持打开以供交互使用(使用 -i ) 不起作用。

免责声明:以下解决方案是从常规命令提示符 (cmd.exe) 而非 cmder/conemu 测试的,但我希望它们也能在那里工作。
要从 PowerShell (v3+) 试用它们,请将 --% 作为第一个参数插入(紧跟在 bash.exe 之后)。

解决方法如下:

c:/Windows/System32/bash.exe -c "zsh -c 'zstyle' && exec zsh -i"

请注意,命令 zstyle 是在一个不同的、 transient 的 zsh 实例中执行的,因此这种方法不适用于目的是修改保持打开状态的交互式 shell 的环境。
如果这是一个要求,事情就会变得更复杂(这个解决方案由 this answer 提供):

c:/Windows/System32/bash.exe -c "{ { echo 'zstyle'; echo 'exec 0<&3-';} | zsh -i; } 3<&0"

但是请注意,正在执行的两个命令将在它们的输出(如果有的话)显示之前被打印,并在提示符之前显示 - 就好像这些命令是交互式输入的一样。

关于shell - 如何打开 shell 然后在其中执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40138177/

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