我有一個腳本命名爲password-for-object
,我正常運行這樣的:shell腳本管道:不同的行爲,有或無XCLIP
$ password-for-object example.com
sOtzC0UY1K3EDYp8a6ltfA
即它執行復雜的散列計算並輸出一個密碼,我在訪問名爲example.com
的對象(例如網站)時應該使用該密碼。我只需雙擊整個密碼,它就會被複制到我的緩衝區中,然後我將它粘貼到表單中。
我還學會了如何使用這樣的腳本一招沒有讓我的密碼可見:
$ password-for-object example.com | xclip
腳本輸出這種方式在X的主緩衝區結束了,我可以將其插入右轉入密碼字段在窗體中,並且它沒有顯示在屏幕上。
這種方式唯一的問題是,password-for-object
輸出一個字符串尾隨換行符,因此「XCLIP」總是趕上一個額外的符號 - 這個換行符。如果我在password-for-object
中省略了換行符的輸出,那麼我最終會遇到無xclip的混亂字符串,即當我將它放在stdout上時。我用2個彈:zsh的和bash,我會得到的zsh如下(注意額外%符號):
$ password-for-object example.com
sOtzC0UY1K3EDYp8a6ltfA%
$
或者在bash(注意,提示會在同一行開始)以下:
$ password-for-object example.com
sOtzC0UY1K3EDYp8a6ltfA$
有關如何解決此問題的任何想法?是否有可能以某種方式修改腳本,以便它能檢測到xclip處於管道中,並且只在不是時才輸出換行符?
好點,謝謝!我想這就是我正在尋找的。 – GreyCat