if循环中数据比较的问题

if循环中数据比较的问题

我在 bash 中有 2 个变量。使用测试我发现其中一个是整数,另一个是字符串。我想比较它们,看看它们是否相等。我尝试了以下选项。

if [ "$a" -eq "$b" ]

if [[ "$a" -eq "$b" ]]

if [ "$a" = "$b" ]

if [[ "$a" = "$b" ]]

我尝试将字符串变量转换为整数

a=$(($a+0))

但我收到以下错误

+0”)语法错误:算术运算符无效(错误标记为“

他们都没有给我提供预期的结果。请告诉我我做错了什么?

我有多个 CSV 文件。每个文件中最后一行的第二个字段将包含该文件中的行数。我必须从文件中获取行数并将其与文件中的实际行数进行比较。如果它们相同,那么只有我需要处理。

ROW_COUNT=`grep -c ^ /tmp/file1.csv` --This is the number

LAST_LINE=`tail -n 1 /tmp/file1.csv`
ACTUAL_ROW_COUNT=`echo ${LAST_LINE} | cut -d "," -f 2` --This is the string

--now i am comparing these two numbers to see if they are same.
if [[ ${ROW_COUNT} == "${ACTUAL_ROW_COUNT}" ]]; then -- Here it is breaking

答案1

以下 if 语句对我有用。

if [[ ${a} = *"${b}"* ]]; then

答案2

你尝试过(())吗?它用于数字而不是字符。所以比较是:

 if (( "$a" == "$b" ))

注意双重==这很重要。

相关内容