bashでは、echo toast | xclip -sel c
は、ターミナルを閉じてもトーストをクリップボードに保存します。なぜこれは他のシェルから永続しないように見えますか?非bashシェルのxclipは耐えられません
python3.5:
import os
os.system("echo toast | xclip -sel c")
は仕事をしていませんが、私はCtrlキーCを押すと、クリップボードが空です。簡単ですCtrlはではありませんクリップボードをクリア/正常に動作します。
にtclsh:
exec /bin/echo toast | xclip -sel c
がさえ、オープンなプロセスを維持しますので、私はそれを終了する必要があります。
これはバグですか?これはどのように可能ですか?または私は何を誤解していますか?
編集。これに対する解決策を見つけることができません。 wish
(Tcl/Tk)-scriptを作成し、exec /bin/echo toast | xclip -sel c
行を含めてウィンドウを閉じました。クリップボードは空のになりました。私は試しましたが、ディスプレイとxauthorityが正しく設定されています。 pythons pyperclipとxeroxで同じ問題が発生していました。
Edit2。問題はhttps://unix.stackexchange.com/questions/316715/xclip-works-differently-in-interactive-and-non-interactive-shellsに減らすことができ、クリップボードを格納するためにxsel -ib
を使用する以外の良い方法はないようです。
あなたはこれを知っているかもしれませんが、 '少なくとも(BA'でexec'(| K | C)* sh'は、新しいプロセスを作成'tclsh'は違うかもしれませんが、私はその場合も親データへのアクセスを失うことが予想されます。私は' python'についてはわかりませんが、証拠が同じintrepretationをサポートしているようです/ idea/concept。シェルで 'exec'がどのように動作するかについての直接的な文書は提供できませんが、ちょっと調べてみるとよいかもしれませんが、+ 50Kシェル群集によって訂正/運がいいよ! – shellter