2015-09-16 19 views
7

Tôi nhận được hành vi kỳ lạ với các lệnh jobs, fgbg trong trình bao zsh của tôi. Dưới đây là một ví dụ (điều này xảy ra cho tất cả các lệnh, không chỉ python):Hành vi "việc làm" lạ trong zsh

$ python & 
[1] 21214 
Python 2.7.8 (default, Oct 19 2014, 16:02:00) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
[1] + 21214 suspended (tty output) python 
$ jobs 
[1] + suspended (tty output) python 
$ fg 1 
fg: job not found: 1 
$ bg 1 
bg: job not found: 1 

Tôi đang sử dụng các tiêu chuẩn oh-my-zsh cài đặt trên OS X.

Trả lời

19

Bạn có thể được sử dụng để fg N (nơi N là một số công việc) làm việc trong Bash. Nhưng có một chút khác biệt trong Zsh, yêu cầu một số %; ví dụ: fg %1. Các hành vi Bash là thuận tiện, vì vậy bạn có thể làm cho Zsh làm tương tự:

fg() { 
    if [[ $# -eq 1 && $1 = - ]]; then 
     builtin fg %- 
    else 
     builtin fg %"[email protected]" 
    fi 
} 

Cùng thể được thực hiện cho bghistory. Đây là ban đầu từ this thread.

+2

Hoặc tìm hiểu cách thực * ngắn: chỉ cần nhập '% 1'.' Fg' được giả định. –

+0

Tôi nghĩ rằng zsh là một superset nghiêm ngặt của bash. Làm thế nào đến hành vi này không giống nhau? –

+0

Zsh không phải là một superset nghiêm ngặt của Bash: http://zsh.sourceforge.net/FAQ/zshfaq02.html –