zsh 中奇怪的“工作”行为

Posted

技术标签:

【中文标题】zsh 中奇怪的“工作”行为【英文标题】:Weird "jobs" behavior within zsh 【发布时间】:2015-12-13 09:31:53 【问题描述】:

我的 zsh shell 中的 jobsfgbg 命令出现了奇怪的行为。这是一个示例(所有命令都会发生这种情况,而不仅仅是python):

$ 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

我在 OS X 上使用标准的 oh-my-zsh 安装。

【问题讨论】:

【参考方案1】:

您可能习惯于在 Bash 中工作的fg N(其中 N 是工作编号)。但是在 Zsh 中有点不同,需要%;例如,fg %1。 Bash 的行为很方便,所以你可以让 Zsh 做同样的事情:

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

bghistory 也可以这样做。这最初来自this thread。

您也可以只输入fg 并隐含%1。当您有一些工作要做时,制表符完成也非常适合:fg<tab>

【讨论】:

或者学习真正的捷径:只需输入%1。假设fg 我认为 zsh 是 bash 的严格超集。为什么这种行为不一样? Zsh 不是 Bash 的严格超集:zsh.sourceforge.net/FAQ/zshfaq02.html @BenSandler 我喜欢并接受zsh方式,但是,虽然lol〜改变习惯很敏感,但不一样。

以上是关于zsh 中奇怪的“工作”行为的主要内容,如果未能解决你的问题,请参考以下文章

列表理解中奇怪的 lambda 行为

Swift 中奇怪的 UInt64 行为

Chrome中奇怪的document.cookie行为[重复]

iPhone 应用程序中奇怪的 OpenGL ES 行为

iphone中奇怪的UISearchBar取消按钮行为(在模拟器中工作正常)

Eclipse 中奇怪的后退按钮(Alt-Left)行为