|
|
|
|
|
by sciurus
5327 days ago
|
|
It's called process substitution. In this case it runs the logger command, connects its input to a file in /dev/fd, and places the name of that file in the argument list of history. I've included a small demonstration below. This is useful since the history command won't write to standard out so you can't use a normal pipe. It's more common to see process substitution used to gather output from multiple commands, see http://www.linuxjournal.com/content/shell-process-redirectio... $ cat writer.sh
#!/bin/bash
if [[ "$#" == 1 ]]; then
echo "Wrote to file named $1" > "$1"
else
echo "Wrote to stdout"
fi
$ ./writer.sh
Wrote to stdout
$ ./writer.sh | cat
Wrote to stdout
$ ./writer.sh >(cat)
Wrote to file named /dev/fd/63
|
|