Bash

變數號是否被視為字元串?

  • October 26, 2022

這是我從一本書(Linux 命令行)中獲得的腳本

#!/bin/bash
# trouble: script to demonstrate common errors
number=1
if [ $number = 1 ]; then
echo "Number is equal to 1."
else
echo "Number is not equal to 1."
fi

我對錶達感到困惑:

$number = 1

在 [ 命令中, = 運算符用於比較字元串,對嗎?或者那裡發生了什麼?

字元串用引號和不帶引號來標識?

[ $number = 1 ]字元串比較和數值比較之間的區別在於[ $number -eq 1 ],相等性意味著基於上下文的不同事物。例如:

number="1"
if [ $number -eq 01 ]; then
 echo "true"
else
 echo "false"
fi

上面的程式碼會回顯true,因為01在數值上等於1,而這個程式碼塊:

number="1"
if [ $number = 01 ]; then
 echo "true"
else
 echo "false"
fi

將回false顯,因為字元串01與字元串不同1

有關條件運算符的文件,您需要參考

引用自:https://unix.stackexchange.com/questions/722590