2015-09-16 4 views
7

私のzshシェルにjobsfgbgのコマンドで奇妙な動作が起こっています。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 

私はあなたがfg Nに使用することができる

答えて

19

OS X上の標準的なOH-MY-zshのインストールを使用しています(:ここでの例では、(これだけではなくpython、すべてのコマンドのために起こる)でありますNはジョブ番号)がBashで働いています。しかし、それは少し違いZshで、%を必要とする;例えば、fg %1である。バッシュの動作は便利ですので、あなたはZshのは、同じことを行うことができます。

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

同じことがbghistoryのために行うことができます。これはもともとthis threadです。

+2

*本当の短い方法を学んでください: '%1'とタイプするだけです。' fg'が仮定されています。 –

+0

私はzshがbashの厳密なスーパーセットだと思っていました。どのようにこの行動は同じではありませんか? –

+0

ZshはBashの厳密なスーパーセットではありません:http://zsh.sourceforge.net/FAQ/zshfaq02.html –