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

How can I open shell and then execute a command inside it

我想要的是打开默认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 是在 不同的瞬态 zsh 实例中执行的,因此这种方法不适用于旨在修改保持开放的交互式环境shell。
如果这是一个要求,事情就会变得更复杂(这个解决方案由 提供):

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

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