#!/bin/bash
if [[ -t 0 && -z "$1" ]]; then
# output contents of clipboard
xclip -out -selection clipboard || exit 1
elif [[ -n "$1" ]]; then
# copy file contents to clipboard
xclip -in -selection clipboard < "$1" || exit 1
else
# copy stdin to clipboard
xclip -in -selection clipboard <&0 || exit 1
fi
#Usage
Print contents of the clipboard
$ clip
Save clipboard to file
$ clip > foo.txt
Pipe output to the clipboard:
$ dmesg | tail -n 50 | clip
$ cat /proc/cpuinfo | clip
Copy file contents to clipboard
$ clip /path/to/some/file.txt