2

遇到这个问题,我正在用墙壁敲打我的头,请帮忙。

我有两个文件 Sheetthickness.k 包含一个初始厚度值和 minThick.k 包含最终厚度只有一个数字。我想计算厚度减少的百分比,所以我使用了。

fina="$(cat minThick.k)";
echo $fina
init="$(cat Sheetthickness.k)";
echo $init 

echo |awk "{ print ($init-$fina)/($init) }" > LSDynaResponse.txt

在没有其他命令且文件已经存在的 shell 中,它可以完美运行,但是当文件由软件创建然后使用这些命令时,它会出错。

awk: { print (-)/() }  
awk:           ^ syntax error
awk: { print (-)/() }
awk:            ^ syntax error
awk: { print (-)/() }
awk:             ^ unterminated regexp

还有其他优雅的方式来完成这项任务吗?

4

1 回答 1

1

听起来你有空文件或根本没有文件,试试这样:

fina="$(cat minThick.k)"       || echo "No min file!!"
[[ -z $fina ]]                 && echo "Null min value!!"
echo $fina
init="$(cat Sheetthickness.k)" || echo "No init file!!"
[[ -z $init ]]                 && echo "Null init value!!"
echo $init
echo "($init-$fina)/($init)"   | bc -l > LSDynaResponse.txt
于 2012-07-16T08:13:43.483 回答