我在 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" ))
注意双重==这很重要。