Answers:
您可以使用以下命令获取当前选定的文本:
echo $(xclip -o -sel)
...但是您需要先安装xclip
:
sudo apt-get install xclip
来自man xclip
:
-o, -out
prints the selection to standard out (generally for piping to a file or program)
和:
-selection
specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
另请参阅此处或一如既往man xclip
。
从评论中,我知道即使没有选择(例如,当文件关闭时),也会xclip
输出最后的选择。在您的情况下,这似乎是一个问题。
尽管xsel
也存在此问题,但是可以解决此问题:如果我们让您的脚本不仅将当前选择内容读入脚本,还将相同内容写入文件。然后,我们可以检查新选择是否与上一个选择不同。如果没有,我们可以得出结论,没有做出新的选择,并且该命令很可能会产生过时的选择。然后,我们可以告诉脚本通过。
一个示例(使用xsel
,在这种情况下有一点优势):
#!/bin/bash
# make sure the file to store the last selection exists
f=~/.old_sel
touch $f
# get the previous & current selection
old=$(cat "$f"); new=$(xsel -o)
if [ "$old" != "$new" ]; then
# if selection changed, store the new selection to remember
echo "$new" > "$f"
# do the action, whatever that may be
echo $new
fi
无需说您需要安装xsel
:
sudo apt-get install xsel
xclip
返回最后选择的文本。
Error: Target STRING not available
并退出。