gpt4 book ai didi

command-line-arguments - 测试适用于 "$f"但不适用于 "$@"

转载 作者:行者123 更新时间:2023-12-01 23:59:31 25 4
gpt4 key购买 nike

我在写一个小的 bash 脚本时发现了一件奇怪的事情。基本上就是在我执行此操作时:

if [ "$@" = "spam with eggs" ]
then
echo "yay"
else
echo "nay"
fi

这会产生以下错误:

$ sh spam.sh spam with eggs
spam.sh: 3: [: =: unexpected operator
nay

但如果我将脚本更改为以下内容,它就可以工作了:

f="$@"
if [ "$f" = "spam with eggs" ]
then
echo "yay"
else
echo "nay"
fi

为什么它不能首先与 "$@" 一起使用?

最佳答案

因为 "$@" 是专门为保留空格而设计的。在您的示例中,它返回三个字符串,而不是一个。您需要在此处输入 "$*"。 (这很不寻常;大多数人都有相反的问题。)

关于command-line-arguments - 测试适用于 "$f"但不适用于 "$@",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169170/

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