I want to use zbarcam but after reading a barcode, it doesn't stop.
$ zbarcam | xvkbd -file - -window emacs
EAN-13:6941428130969
CODE-128:3096140900557
Do you know how I can tell bash to kill zbarcam after printing on the stdout the first \n ?
I want to use zbarcam but after reading a barcode, it doesn't stop.
$ zbarcam | xvkbd -file - -window emacs
EAN-13:6941428130969
CODE-128:3096140900557
Do you know how I can tell bash to kill zbarcam after printing on the stdout the first \n ?
Try
tmp=/tmp/barcode.$$ # Note: security risk
zbarcam > $tmp &
pid=$!
# Sleep until file has content
while [[ ! -s $tmp ]] ; do
sleep 1
done
kill $pid
cat $tmp
Note that it might not work if zbarcam doesn't flush its output.
Have you tried this?
zbarcam | head -1 | xvkbd -file - -window emacs
tmp=/tmp/barcode.$$ # Note: security risk zbarcam > $tmp & pid=$!
while [[ ! -s $tmp ]] ; do sleep 1 done kill $pid cat $tmp
Very Good :D