小编lua*_*nyi的帖子

什么"bash:这个shell中没有工作控制"是什么意思?

我认为这与创建新子进程的父进程有关,并且没有tty.谁能解释引擎盖下的细节?即bash,流程创建等相关工作模型?

这可能是一个非常广泛的主题,因此对帖子的指示也非常感激.我用谷歌搜索了一段时间,所有结果都是关于非常具体的情况,没有一个是关于场景背后的故事.为了提供更多上下文,下面是shell脚本,导致'bash:此shell中没有作业控件'.

#! /bin/bash

while [ 1 ]; do
    st=$(netstat -an |grep 7070 |grep LISTEN -o | uniq)
    if [ -z $st ]; then
        echo "need to start proxy @$(date)"
        bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"
    else
        echo "proxy OK @$(date)"
    fi
    sleep 3
done
Run Code Online (Sandbox Code Playgroud)

这一行:

bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"

是"bash:这个shell中没有工作控制"来自哪里.

linux bash

47
推荐指数
3
解决办法
7万
查看次数

为什么我在使用XCode时不能拥有名为'retain'的属性?

在XCode 4.6.2 ARC中,如果你在名为'retain'的类中有一些属性,那么IDE或编译堆栈都会做一些有趣的事情,使得类不能以通常的模式使用:[[MyClass alloc] init].

例如,如果我将类Foo定义为

// Foo.h

#import <Foundation/Foundation.h>

@interface MosquittoMessage : NSObject

@property (nonatomic, assign) BOOL retain;

-(id)init;

@end

// Foo.m

#import "Foo.h"

@implementation MosquittoMessage

-(id) init
{
  self = [super init];
  return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

它会编译运行,但我不能使用

Foo *foo = [[Foo alloc] init];
Run Code Online (Sandbox Code Playgroud)

创造foo.运行时的上述语句将foo设置为nil.我使用调试器跟踪问题并发现alloc实际上返回了一个有效的Foo,但是在init中,由于某种原因它被释放,并且返回的self是nil.

任何人都对XCode或编译系统中的这个"bug"有任何想法吗?

添加:

当然'保留'是在Obj-C中保留的,我的问题是为什么编译器不抱怨它是否被允许?相反,它生成了错误的代码.

xcode objective-c clang ios automatic-ref-counting

1
推荐指数
1
解决办法
197
查看次数

标签 统计

automatic-ref-counting ×1

bash ×1

clang ×1

ios ×1

linux ×1

objective-c ×1

xcode ×1