#!/bin/bash value=0 echo "value starts from $value" ./script.pl arg1 arg2 | while read line ; do value=$line echo "value is $value" done echo "after first while, value is $value" while read line ; do value=$line echo "value is $value" done <<<"$(./script.pl arg1 arg2)" echo "finally, value is $value"