Kim Altintop <kim@xxxxxxxxx> writes: > Perhaps an alternative would be: > > write_fetch_command () { > write_command fetch && > echo "0001" && > echo "no-progress" && > cat /dev/stdin && > echo "done" && > echo "0000" > } > > > Which would then be called like so: > > write_fetch_command >pkt_cmd <<-EOF && > want-ref refs/heads/main > have $(git rev-parse a) > EOF > test-tool pkt-line pack <pkt_cmd >in && > test-tool serve-v2 --stateless-rpc >out <in && > > > I'm not sure how portable that is, though. Maybe using `while read -r` instead > of `cat /dev/stdin`? If you drop /dev/stdin, the result would be emimently portable. "cat" without any argument reads from the standard input stream and copies it to the standard output stream.