On Mon, 18 Oct 2004 19:51:49 +0200, Olle Eriksson wrote: > Hi > > Can anyone explain how I can read input to a bash > script through a pipe? > > I want to be able to receive input both through a pipe, > and through > parameters to the script. For example: > > echo "blabla" | myscript.sh > and > myscript.sh "blabla" > > The script should be able to check whether or not any > input is coming > through the pipe, and if not use $1. I have tried with > cat and read but > they always asks the user interactively if nothing is > piped to the > script. > > Thanks > Olle
You should use exec like the following simple example: #!/bin/bash exec 6<&0 # Link file descriptor #6 with stdin. read a1 # read if somethign comes from a pipe echo $a1 # print the output of the pipe. # you can make here the validation that you need if not then read $1 case a1 . esac exec 0<&6 6<&- # restore stdin. I hope this help -- Sergio Basurto J. If I have seen further it is by standing on the shoulders of giants. (Isaac Newton) -- -- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]