[colug-432] bash pipe + read?
richardjhornsby at gmail.com
Mon Nov 16 11:33:43 EST 2015
> On Nov 16, 2015, at 10:25, Jeff Frontz <jeff.frontz at gmail.com> wrote:
> On Mon, Nov 16, 2015 at 10:38 AM, Rick Hornsby <richardjhornsby at gmail.com <mailto:richardjhornsby at gmail.com>> wrote:
> I think I understand the problem - what's happening is that because there's an input pipe to bash, read takes the next line of the script as its input instead of taking it from the user - they're both on stdin.
> If I understand your question/scenario, you probably want to redirect your read from /dev/tty (a la "$ read < /dev/tty someVariable"). You can also use the tty command to figure out if there is actually a tty associated with the shell (e.g., to provide some useful default behavior if the script is run from, say, a crontab or at job).
This particular script will always be run interactively. The tasks it accomplishes may later be rolled into a kickstart type thing, but at that point I'll be looking at a rewrite and the need for a prompt will go away.
The /dev/tty thing looks perfect, and appears in my little test stub to be doing exactly what I need. It makes sense why it works, but I hadn't thought of that.
This is a very simple solution that's extremely readable - far more than the fork inversion things.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the colug-432