Gửi một ứng dụng từ nền trước đến nền đòi hỏi sự hợp tác từ cả thiết bị đầu cuối và vỏ. Thiết bị đầu cuối không thể làm điều đó một mình, vì trình bao phải đặt nhóm quy trình tiền cảnh. Shell không thể làm điều đó một mình, vì thiết bị đầu cuối phải xử lý phím bấm (vỏ không ở phía trước, vì vậy nó không thể nhận được nhấn phím).
Một xấp xỉ gần đúng là gửi ứng dụng đến nền rất nhanh. Rốt cuộc, một ứng dụng chia sẻ thời gian CPU với những người khác và tạm dừng vài phần trăm giây không thành vấn đề. (Nó dành cho các ứng dụng thời gian thực, vì vậy hãy đảm bảo khởi động những ứng dụng trong nền.) Tôi sử dụng một ràng buộc shell cho Ctrl+ Zđể gửi công việc được tạo nền trước cho nền. Bằng cách đó, nhấn Ctrl+ Z Ctrl+ Zsẽ gửi một công việc đến nền với thời gian treo tối thiểu.
Đây là ràng buộc zsh của tôi, cũng là một nền tảng khác, một lệnh nửa gõ khi dòng lệnh không trống .
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
Trong tiếng Anh, dành cho những người không sử dụng zsh trong đối tượng:
Nếu bạn chỉ muốn hành vi nền bất kể dòng lệnh có trống không:
function bg_ { builtin bg "$@"; }
zle -N bg_
bindkey '^Z' bg_
Tôi không biết nếu bạn có thể làm điều tương tự trong bash. Nó phải dễ như bind -x '"\C-z": bg'
, ngoại trừ việc bash để lại ký tự tty stop, vì vậy nó không bao giờ được Ctrl+ Zlàm đầu vào.