小编Jol*_*lta的帖子

捕获shell退出代码

我正在开发一个shell脚本,并希望处理我可能遇到的各种退出代码.为了尝试,我使用这个脚本:

#!/bin/sh
echo "Starting"
trap "echo \"first one\"; echo \"second one\"; " 1
exit 1;
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些东西,但似乎我无法陷入自己的"退出1".如果我试图陷阱0一切正常:

#!/bin/sh
echo "Starting"
trap "echo \"first one\"; echo \"second one\"; " 0
exit
Run Code Online (Sandbox Code Playgroud)

关于捕获HUP(1)退出代码有什么我应该知道的吗?

shell signals exit-code shell-trap

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

C++:在SIGINT之后继续执行

好的,我正在编写一个程序正在进行一些非常繁重的分析,我希望能够快速停止它.

我添加signal(SIGINT, terminate);到main的开头并定义了终止,如:

void terminate(int param){
   cout << endl << endl << "Exit [N]ow, or [A]fter this url?" << endl;
   std::string answer;
   cin >> answer;
   if(answer[0] == 'n' || answer[0] == 'N'){
      terminateParser();
      exit(1);
   }else if(answer[0] == 'a' || answer[0] == 'A'){
      quitAfterUrl = true;
   }
}
Run Code Online (Sandbox Code Playgroud)

在linux中,这正如我所期望的那样,即它等待用户输入.但是,当我尝试在Windows中执行相同操作时,它会显示消息并退出.

有没有办法阻止SIGINT立即关闭程序?

更新:

当我试着

BOOL WINAPI handler(DWORD dwCtrlType)
{
  if (CTRL_C_EVENT == dwCtrlType)
  {
    // ask the user
  }
  return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

正如Gregory建议的那样,该程序仍然毫不客气地退出而没有停止用户输入.

更新2:我不确定它做了什么,但代码现在正在运行.谢谢大家的帮助.

c++ windows signals copy-paste sigint

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

如何检查xcode中返回的null对象

我有一个从JSON查询字符串返回的NULL对象,我不知道如何在If语句中检查它.我的语法如下,但我似乎仍然无法为NULL类捕获(即,如果没有返回任何内容,那么就不能设置文本变量,因此它必须是一个NULL类?),无论如何,我需要检查一下@"BillingStreet"在它的东西,如果不避免处理它(否则应用程序崩溃,因为它试图没什么设置的一个文本值fieldsVC):

- (void) tableView: (UITableView *)itemTableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath{
    NSDictionary *obj = [self.dataCustomerDetailRows objectAtIndex:indexPath.row];
    NSString *text = [obj objectForKey:@"BillingStreet"] == nil ? @"0" : [obj objectForKey:@"BillingStreet"];
    NSLog(@"%@",text);
    if (text.class == NULL){
    } else {
        NSLog(@"no street");
        self.labelCustomerAddress.text = [obj objectForKey:@"BillingStreet"];
    }
}
Run Code Online (Sandbox Code Playgroud)

null xcode objective-c

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

摩托罗拉68K TRAP指令作为操作系统的桥梁

我不是专家,只是一个业余爱好者.我过去常常使用68000架构,而且我一直在考虑它的TRAP指令.该指令总是被描述为操作系统的"桥梁"(在某些系统中,它并没有在这方面使用,但这是一个不同的故事).如何实现这一目标?TRAP本身是一个特权指令,那么这个OS调用机制如何在用户模式下工作?我的猜测是触发了特权违规异常,异常处理程序检查特定指令导致了异常.如果它是TRAP指令,那么简单地执行指令(也许TRAP的操作数,即TRAP向量号也被检查),当然现在处于管理员模式.我对吗?

operating-system 68000 motorola motorola-trap

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

为什么我的疏水阀不起作用?

我写了下面的脚本:

#!/bin/bash
sleep 15

function_signalr()
{
date
date | awk '{printf "%-15s\n", $2}' 
}

trap "function_signalr" 10
Run Code Online (Sandbox Code Playgroud)

当我通过“进程&”启动进程时,将给出PID。我确实杀死了-10 PID,但是我的陷阱不起作用。该进程被杀死,但陷阱没有弹出。没有给出日期消息。如有任何建议,我将不胜感激。

bash bash-trap

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

为什么Cacti显示空图,即使创建了rrd文件?

我已经开发了自己的SNMP服务,我想绘制一个提供的OID图.所以,我在Cacti创建了一个图表. - )显示设备. - )它正在创建rrd文件.(RRDTool说好的). - )显示图表,但它是空的.

但是当我检查它时,说

rrdtool fetch <rrd file> AVERAGE 
Run Code Online (Sandbox Code Playgroud)

它告诉我nan所有的价值观.被监视的OID的值为47,我设置了min = 0和max = 100.

我正在使用rpath的Cacti设备:

http://www.rpath.org/ui/#/appliances?id=http://www.rpath.org/api/products/cacti-appliance

不过,我无法在图表上显示价值..

问题出在哪儿?有人可以告诉我吗?

snmp rrdtool cacti

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

找到回显出现在bash脚本中的行号

可以使下面的bash脚本像我在标题中所说的那样工作吗?

#!/bin/bash

echo_report() {
    echo "echo on line $1"
}

trap 'echo_report $LINENO' [sigspec]

#same code here

echo "hi"

#more code here
Run Code Online (Sandbox Code Playgroud)

我不知道应该用什么[sigspec]......

如果trap无法使用,我还有其他选择吗?

bash shell

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

Linux陷阱&&的最佳实践

使用trap可能有助于编写最干净的bash脚本.但是我想知道是否存在解决方案以便在以下情况下捕获错误:

GNU bash,版本4.2.45

好的

#!/bin/bash
trap 'echo OK i see error at line $LINENO;exit' ERR 
unknowncommand
echo "test KO should never reach me"
Run Code Online (Sandbox Code Playgroud)

案例KO

#!/bin/bash
trap 'echo OK i see error at line $LINENO;exit' ERR
unknowncommand && echo "miss the trap"
echo "test KO should never reach me"
Run Code Online (Sandbox Code Playgroud)
  • 不幸的是,我们到达最后一句话,好像&&使整个句子不是ERR.

linux error-handling bash bash-trap

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

snmp陷阱特定的陷阱代码

我正在构建SNMP代理,现在正在处理陷阱消息。在开始编写陷阱消息的代码之前,我有一个问题:
在SNMPv1中,具体的陷阱代码是什么?我到处搜索的内容都只是表面上的定义,而我想获得一个深层的定义,其中包含它的可能。

snmp snmptrapd snmp-trap

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

如何在Perl中监控陷阱警报?

什么是perl中最简单的代码来监控任何设备(例如UPS,整流器,AirCond等)的陷阱.例如我们要监控温度,服务器室湿度,空气水平等.每个设备如UPS,里面都有SNMP卡和然后我们推出了陷阱服务器的IP地址.目前我正在使用snmptt开放软件应用程序.

perl snmp-trap

-2
推荐指数
1
解决办法
912
查看次数