gpt4 book ai didi

windows - win-bash 中预期的二元运算符

转载 作者:可可西里 更新时间:2023-11-01 10:26:53 29 4
gpt4 key购买 nike

我正在尝试使用 win-bash 编写一个可以在 Mac 和 Windows 上运行的 bash 脚本对于 Windows 端,因为它不必安装。但是,Mac 和 Windows 似乎对语法有不同的看法。

例如,到目前为止我有以下脚本:

echo "Setup..."
shopt -s expand_aliases #make sure aliases work
if [ "$(uname)" == "Darwin" ]; then
alias p4cli=./bin/p4
else
alias p4cli=p4
fi

echo "Checking login status..."
p4cli groups > .trash
if [ $? -ne 0 ]; then
p4cli login
fi
echo "Done!"

这失败了:

[: ==: binary operator expected

在 Windows (win-bash) 上,但在 Mac 上工作得很好(我假设这是更正确的...因为它实际上是 Unix)。

知道我在这里做错了什么吗?

最佳答案

尝试使用单 = 而不是双 ==:

if [ "$(uname)" = "Darwin" ]; then

它们都表示测试中的字符串相等性检查,但用于比较的单个等号符合 POSIX,而双等号则不符合 - 它仅适用于当前的 bash/ksh 作为语法糖以提高可读性(对于旧的 shell 也会失败。

关于windows - win-bash 中预期的二元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824989/

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