"Unprocessed input" 在带变量的循环中使用 `cdo` 时出错
"Unprocessed input" error using `cdo` in loop with variable
我正在尝试在带有变量的 shell 脚本中嵌入 cdo
行。作为命令行,它可以工作,但不能在脚本中使用。这是 cdo
行:
cdo -expr,'T_mask=((T > 200 ))' file_in.nc file_out.nc
在 shell 脚本中,我想 运行 它用于三个不同的温度阈值,例如 200、250、300。
这是代码:
T_string='T_mask=((T > '
fileA='file_in.nc'
fileB='file_out.nc'
for T_var in 200 250 300; do
cdo_string="'$T_string$T_var))'"
cdo -expr,$cdo_string $fileA $fileB
done
我收到以下错误:
cdo (Abort): Unprocessed Input, could not process all Operators/Files
我错过了什么?
连字符设置正确吗?
$T_string
变量似乎没有必要。使用类似命名的 shell 变量时,请始终使用花括号。
试试这个:
fileA='file_in.nc'
fileB='file_out.nc'
for T_var in 200 250 300; do
cdo -expr,'T_mask=((T > '"${T_var}"'))' "${fileA}" "${fileB}"
done
我正在尝试在带有变量的 shell 脚本中嵌入 cdo
行。作为命令行,它可以工作,但不能在脚本中使用。这是 cdo
行:
cdo -expr,'T_mask=((T > 200 ))' file_in.nc file_out.nc
在 shell 脚本中,我想 运行 它用于三个不同的温度阈值,例如 200、250、300。
这是代码:
T_string='T_mask=((T > '
fileA='file_in.nc'
fileB='file_out.nc'
for T_var in 200 250 300; do
cdo_string="'$T_string$T_var))'"
cdo -expr,$cdo_string $fileA $fileB
done
我收到以下错误:
cdo (Abort): Unprocessed Input, could not process all Operators/Files
我错过了什么? 连字符设置正确吗?
$T_string
变量似乎没有必要。使用类似命名的 shell 变量时,请始终使用花括号。
试试这个:
fileA='file_in.nc'
fileB='file_out.nc'
for T_var in 200 250 300; do
cdo -expr,'T_mask=((T > '"${T_var}"'))' "${fileA}" "${fileB}"
done