字符串和整数混淆???击

时间:2017-02-02 11:26:03

标签: string bash unix int

我在bash中写了一个脚本

我有一个数组,我想添加如果我发现Id =到$ i变量,否则我想添加文本null并递增直到两个变量都是相同的值

示例:

$ I = 10101

$ Id可以取此值(10101,10102,10105,10107)

这是我的代码的一部分

txts=()
for line in $(cat file.txt)
do
    Id="$(echo $line | cut -d ' ' -f1)"
    #I want to know how to transform the Id into a int ????
    eId=$(echo $Id + 0) 
    txt="$(echo $line | cut -d ':' -f2)"
    if [[ $i -eq $eId ]]; then
       txts+=("$txt")
       i=$((i+1))
    else
        for (( c=$i; c=$eId; c++))
        do
            txts+=("null")
            i=$((i+1))
        done
        i=$(($eId))
    fi
done

使用ShellCheck编辑代码:

txts=()
while IFS='' read -r line || [[ -n "$line" ]]; do
Id=$(echo "$line" | cut -d ' ' -f1)
eId=$(echo $Id + 0) 
txt="$(echo line | cut -d ':' -f2)"
if [[ $i -eq $eId ]]; then
   txts+=("$txt")
   i=$((i+1))
else
    for (( c=i; c=eId; c++))
    do
        txts+=("null")
        i=$((i+1))
    done
    i=$((eId))
fi
done < "Vlan_Port.txt"

输出:

./script.sh: line 27: = + 0: syntax error: operand expected (error token is "= + 0")

这可能吗?请解释原因。

编辑1

起始指数为10101

我有一个带索引和文本的文件,我想知道它们是否在订单中,如果没有放入它们,如果有缺失索引,则将文本置为空,最后我想要的示例我给了上面是一个包含的数组:

10101 10102 空值 空值 10105 空值 10107

0 个答案:

没有答案