所以我经常将应用程序推送到后台并在它们之间切换。我意识到 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
答案1
来自help mapfile
readarray 的同义词:
选项:
-t 从读取的每行中删除尾随的 DELIM(默认换行符)
将该选项添加到 readarray 调用中以修剪掉尾随的新行。