shell脚本管道到变量

时间:2012-03-02 14:39:12

标签: shell

我有以下内容:

FILENAME=$1
cat $FILENAME | while read LINE
do
       response="$LINE" | cut -c1-14
       request="$LINE" | cut -c15-31
       difference=($response - $request)/1000
       echo "$difference"
done

当我运行此脚本时,它返回空行。我做错了什么?

3 个答案:

答案 0 :(得分:1)

在awk中可能更简单:

awk '{print ($1 - $2)/1000}' "$1"

我假设前14个字符和接下来的17个字符是前两个空格分隔的字段。

答案 1 :(得分:0)

您需要将其更改为:

response=`echo $LINE | cut -c1-14`
request=`echo $LINE | cut -c15-31`
difference=`expr $response - $request`
val=`expr $difference/1000`

答案 2 :(得分:0)

你基本上做错了;) 这应该更好:

FILENAME="$1"
cat "$FILENAME" | while read LINE
do
       response=$(echo "$LINE" | cut -c1-14) # or cut -c1-14 <<< "$line"
       request=$(echo "$LINE" | cut -c15-31)
       difference=$((($response - $request)/1000)
       echo "$difference"
done