Autocomplete

bash 完整輸出末尾的雜散換行符

  • August 12, 2018

所以我經常將應用程序推到後台並在它們之間切換。我意識到 fg 沒有完整定義選項卡。

所以我想我可以用來自 jobs 命令的建議快速為 fg 組合一個完整的選項卡。我沒有檢查這樣的東西是否已經線上存在,因為這似乎是一個有趣的項目。到目前為止,這是我的程式碼:

job(){
 readarray COMPREPLY < <(jobs -l)
 for i in "${!COMPREPLY[@]}"; do
     printf -v pad %*s -$COLUMNS "${COMPREPLY[i]}"
     COMPREPLY[i]="%"${pad//[][]}
 done
}

問題是在每個建議的末尾都會出現一個雜散的換行符(^j),例如:

%1 53967 停止 vim^J

%2 54257 停止 python^J

%3 54499 停止(信號)nano^J

%4- 42270 停止 vim ~/.bashrc^J

%5+ 47434 停止 vim ~/.bashrc^J

help mapfilereadarray 的同義詞:

選項:

-t 從讀取的每一行中刪除尾隨的 DELIM(預設換行符)

將該選項添加到您的 readarray 呼叫中以修剪尾隨的新行。

引用自:https://unix.stackexchange.com/questions/462080