简体   繁体   中英

shell scripting pipline to a variable

I have the following:

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

When I run this script it returns blank lines. What am I doing wrong?

Might be simpler in awk:

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

I'm assuming that the first 14 chars and the next 17 chars are the first two blank-separated fields.

You need to change it to:

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

You are basically doing everything wrong ;) This should be better:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM