Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> function clip { [ -t 0 ] && pbpaste || pbcopy }

That's great! Would you please explain why that works? Are there any cases you know of where that doesn't work as expected?

Edit: btw you need a semicolon after pbcopy to make that function valid on one line.



I'm not the OP, but I'll give it a go.

`[` is a Bash built-in command also known as `test`. The `-t` parameter tells it to test if a file descriptor is open for `0`, which is also known as `STDIN`.

So if you're piping something into `STDIN` it will do `pbcopy`. If not -- it will do `pbpaste`.


from `man test`:

   -t FD  file descriptor FD is opened on a terminal
FD 0 is stdin I'd guess. Pretty clever!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: