如何在 fish shell 中一次异步地 运行 多个命令?
How to run multiple commands at once asynchronously in fish shell?
在bash中,我会运行
(npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server)&
安装一些我需要的包。
我一直在尝试在 fish 中执行相同的命令,但遇到了问题。我正在考虑创建一个单独的文件并使用 bash 运行 它,但是如何在 fish 中执行此操作会很好。我收到 fish: Command substitutions not allowed
错误。我可以运行这个
npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server
,但它不是异步的。我有很多这样的其他命令,因此异步会更快
谢谢
当您将命令放在 Bash(或任何 POSIX shell)的括号中时,您是 运行 它们在子 shell 中,与&
当然是将 subshell 放在后台。
Fish 没有子 shell 的确切概念,但对于您的特定示例,您可以通过 运行 在 sub-process 而不是子shell.
fish -c "npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server" &
像这样的子shell和sub-process之间有several differences(也许还有其他),但它们对这个特定场景无关紧要。
在bash中,我会运行
(npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server)&
安装一些我需要的包。
我一直在尝试在 fish 中执行相同的命令,但遇到了问题。我正在考虑创建一个单独的文件并使用 bash 运行 它,但是如何在 fish 中执行此操作会很好。我收到 fish: Command substitutions not allowed
错误。我可以运行这个
npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server
,但它不是异步的。我有很多这样的其他命令,因此异步会更快
谢谢
当您将命令放在 Bash(或任何 POSIX shell)的括号中时,您是 运行 它们在子 shell 中,与&
当然是将 subshell 放在后台。
Fish 没有子 shell 的确切概念,但对于您的特定示例,您可以通过 运行 在 sub-process 而不是子shell.
fish -c "npm install -g npm@latest && npm install -g neovim bash-language-server vscode-langservers-extracted graphql -language-service-cli solidity-language-server typescript-language-server" &
像这样的子shell和sub-process之间有several differences(也许还有其他),但它们对这个特定场景无关紧要。