gpt4 book ai didi

linux - 比较 Bash 脚本中的变量

转载 作者:太空狗 更新时间:2023-10-29 11:38:25 25 4
gpt4 key购买 nike

查看其他 Bash 脚本,我看到人们比较变量,例如:$S == $T 而在其他时候,我看到变量被包裹在字符串中:“$S”==“$T”

一些实验似乎表明两者的作用相同。下面的演示将在两种情况下打印 equal(使用 GNU bash 测试,版本 4.2.37):

#!/usr/bin/env bash

S="text"
T="text"

if [[ $S == $T ]]; then
echo "equal"
fi

if [[ "$S" == "$T" ]]; then
echo "equal"
fi

我的问题:如果 $S == $T"$S"== "$T" 之间有区别,那是什么?

最佳答案

如果你使用 [[ 它们几乎相同,但不完全...

When the == and != operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below under Pattern Matching. [...] Any part of the pattern may be quoted to force it to be matched as a string.

如果您使用 [,那么您必须使用引号,除非您知道变量不能为空或包含空格。

为了安全起见,您可能希望一直引用所有变量。

关于linux - 比较 Bash 脚本中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209180/

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