Câu trả lời:
Bạn có thể nhận được văn bản hiện được chọn bằng lệnh:
echo $(xclip -o -sel)
... nhưng bạn cần cài đặt xclip
trước:
sudo apt-get install xclip
Từ man xclip
:
-o, -out
prints the selection to standard out (generally for piping to a file or program)
và:
-selection
specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
Xem thêm ở đây hoặc, như mọi khi , man xclip
.
Từ một bình luận, tôi hiểu rằng đưa xclip
ra lựa chọn cuối cùng , ngay cả khi không còn lựa chọn nào nữa (ví dụ: khi tệp được đóng). Đó dường như là một vấn đề trong tình huống của bạn.
Mặc dù xsel
cũng có vấn đề này, nó có thể được giải quyết: nếu chúng tôi làm cho tập lệnh của bạn không chỉ đọc lựa chọn hiện tại vào tập lệnh mà còn ghi cùng một nội dung vào một tệp. Sau đó chúng ta có thể kiểm tra xem lựa chọn mới có khác với lựa chọn cuối cùng không. Nếu không, chúng ta có thể kết luận không có lựa chọn mới nào được thực hiện và lệnh rất có thể tạo ra một lựa chọn lỗi thời. Sau đó chúng ta có thể nói kịch bản để vượt qua.
Một ví dụ (sử dụng xsel
, có một chút lợi thế trong trường hợp này):
#!/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
Không cần phải nói rằng bạn cần phải cài đặt xsel
:
sudo apt-get install xsel
xclip
trả về văn bản được chọn cuối cùng .
Error: Target STRING not available
và thoát.