gpt4 book ai didi

bash - 是否可以在 msys/mingw 上模拟进程替换(使用 bash 3.x)

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

我正在尝试使用进程替换来避免使用临时文件。我尝试了以下方法:

diff <(echo "a") <(echo "b")

在 mingw32/msys 上(来自 http://www.mingw.org/,截至 2013 年 12 月),并得到:
sh: syntax error near unexpected token `('

在 Ubuntu 12.04 上运行相同的东西会返回:
1c1
< a
---
> b

我使用的 msys 可能有 bash 3.1。我想知道是否有可能解决这个问题,以便可以在不使用临时文件的情况下在 msys/旧 bash 中完成相同的工作。

谢谢。

最佳答案

我打算在 bash 3.x 中进行进程替换。语法是正确的。它由 bash shell 支持。所以我建议检查你正在运行的 shell 并执行 somiting,如:

/bin/bash diff <(echo "a") <(echo "b")

进程替换不是 POSIX 兼容功能。要启用尝试运行:
set +o posix

另见 this了解更多信息。

另一种方法是使用命名管道。我在 GNU bash 版本 4.1.2(1) 上进行了测试:
diff - p <<< "test" & echo "test2" > p

请参阅使用 Named Pipes

关于bash - 是否可以在 msys/mingw 上模拟进程替换(使用 bash 3.x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866832/

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