/dev/null'' この bash では動作しますが、ダッシュでは動作しません。">

''cat "${1:-/dev/stdin} | ... &>/dev/null'' この bash では動作しますが、ダッシュでは動作しません。

''cat /dev/null'' この bash では動作しますが、ダッシュでは動作しません。">

スクリプト:

#!/bin/sh
#
# reads stdin/file and copies it to clipboard
# clears it after 30s
#
cat "${1:-/dev/stdin}" | timeout 30 xclip -i -selection clipboard -r -verbose &>/dev/null &

stdinだけが動作しないことがわかります(bashを使用するとstdin /ファイルで動作します)。
PS verboseは、xclipがデーモンになるのを防ぐために使用されます。

ベストアンサー1

&>bashismなので、>/dev/null 2>&1POSIXシェルに変更する必要があります。

おすすめ記事