我正在尝试获取最初编写为在Linux上运行以在Windows机器上运行的bash脚本。在Git Bash(mingw64)中运行脚本。我被困的部分是减去我通过读取文件定义的两个变量。
#!/bin/bash
cd ..
cd _config
# read in target length from config.R file
while read -r a b; do
c=${b##*<-}
if [ ${#c} -gt 0 ];
then
IFS=', ' read -r -a array <<< $c
if [[ $a == *"target."* ]]; then
target_period="${array[0]}"
elif [[ $a == *"train."* ]]; then
train_period="${array[0]}"
fi
fi
done < config.R
cd ..
cd _extract_scripts
prediction_size=$target_period
total=$train_period
# Getting stuck here. Funny thing is that this used to work.
remaining=$(($total-$prediction_size))
echo $remaining
在Git Bash中运行上述命令时,出现以下错误:
")0yntax error: invalid arithmetic operator (error token is "
我尝试了所有建议的答案here,但没有成功。
这就是我正在阅读的config.R
文件的样子:
## config.R ##
options(scipen = 999)
target.period.length <- 90
train.period.length <- 730
INVALID_PARAMS_MESSAGE <- "Invalid mode parameter provided."
如果我只是直接定义变量,那么数学有效:
prediction_size=730
total=90
remaining=`eval expr $total - $prediction_size`
这使我认为我需要在减去之前转换$prediction_size
和$total
的类型。