【问题标题】:Weird "jobs" behavior within zshzsh 中奇怪的“工作”行为
【发布时间】: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 安装。

【问题讨论】:

    标签: bash zsh jobs


    【解决方案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〜改变习惯很敏感,但不一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2021-05-31
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多