从抛出错误的变量中减去一个数字

Subtracting a number from a variable throwing an error

我正在使用以下代码来 grep 通过从第 2 列和第 3 列加减 1 计算得出的值,如下所示:

 while read intron ; do
   start=$(grep -w $intron ../file_to_be_grepped_from | awk '{print }')
   end=$(grep -w $intron ../file_to_be_grepped_from | awk '{print }')
   str=$(($start-1))
   en=$(($end+1))
   grep -w $str ../file_to_be_grepped_from
   grep -w $en ../file_to_be_grepped_from
   echo $intron 
  done <  file

然而,我分别从第 3 列和第 2 列加减 1 的部分出现“46844234-1:表达式语法错误(错误标记为“46844234-1”)”错误我正在从 (file_to_be_grepped_from) 中查找的文件中的行。 grepped 文件中的行如下所示:

  chr9  46844104    46844233    ENSG00000226007:E2  +
  chr9  46844104    46846023    ENSG00000226007:I2  +
  chr3  21584308    21584487    ENSG00000225542:E1  +
  chr3  21620681    21620873    ENSG00000225542:E2  +

我想弄清楚错误是因为重复的行还是其他原因,我尝试了所有可能的语法来从变量中减去一个数字。

请尝试:

start="101010"
end="999999"
let str=$start-1
let en=$end+1
echo $str     $en
     101009   1000000
str=$(grep -w $intron ../file_to_be_grepped_from | awk '{print(-1)}')
en=$(grep -w $intron ../file_to_be_grepped_from | awk '{print(+1)}')