X11
如何使用 xdotool 輸入任何內容?
我有一些可列印的 ASCII 字元的輸入欄位,不包括空格,我想將其傳遞給輸入欄位,就像
xdotool
通過鍵盤輸入一樣。我的嘗試:
echo "type lol lol" | xdotool -
吃掉中間的空間,所以它鍵入lollol
而不是lol lol
.echo "type 'lol lol'" | xdotool -
正確lol lol
輸入,但不能'
在中間輸入。即echo "type 'lol ' lol'" | xdotool -
不是 typelol ' lol
,而是 typeslol lol'
。我的問題:
- 如何使用
xdotool
讓它輸入任意字元而不會出現上述問題?- 如果
xdotool
還不夠,有沒有更好的替代工具?**更新:**我關心這個的原因是因為我將它用於我正在實施的密碼管理器。我認為最好通過鍵盤輸入模擬輸入密碼,而不是通過某些共享剪貼板複製粘貼,其他程序可能會考慮竊取密碼。
我不明白為什麼你必須
echo
通過命令stdin
,你可以直接使用命令。以下對我有用(使用測試xev
):$ xdotool search Event Defaulting to search window name, class, and classname 37748737 $ xdotool type --window 37748737 "'" $ xdotool type --window 37748737 " "
如果您堅持通過 傳遞命令
stdin
,那麼顯然xdotool
會進行自己的解析,因此您必須轉義雙引號:$ echo "type --window 37748737 \"' \"" | xdotool -
為了更好地控制,您還可以使用
key
以空格分隔的鍵符:$ xdotool key --window 37748737 space a apostrophe
對於您想要的任何類型的自動化,這通常就足夠了。請注意,
xdotool
模擬按鍵和釋放,而不是字元。您尚未描述您的案例(請編輯您的問題並這樣做,並閱讀有關XY 問題),但如果出於某種原因您希望將其他來源的變數文本粘貼到某個應用程序中,請考慮使用剪貼板(通過
xclip
) , 並xdotool
在輸入欄位中模擬粘貼操作 - 這將比嘗試將任意文本轉換為適當的按鍵更可靠。