小编Luc*_*mon的帖子

将dmesg时间戳转换为自定义日期格式

我试图理解dmesg时间戳,并发现很难将其转换为更改为Java日期/自定义日期格式.

任何帮助深表感谢.

示例dmesg日志:

[14614.647880] airo(eth1): link lost (missed beacons)
Run Code Online (Sandbox Code Playgroud)

谢谢!

logging kernel timestamp

101
推荐指数
7
解决办法
11万
查看次数

如何在不创建子shell的情况下将命令输出存储在变量中[Bas​​h <v4]

ksh有一个非常有趣的构造来做到这一点,详细解答如下:https://stackoverflow.com/a/11172617/636849

从Bash 4.0开始,有一个内置的mapfile内置命令可以解决这个问题:http: //www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html

但奇怪的是,它似乎不适用于进程替换:

foo () { echo ${BASH_SUBSHELL}; }
mapfile -t foo_output <(foo) # FAIL: hang forever here
subshell_depth=${foo_output[0]} # should be 0
Run Code Online (Sandbox Code Playgroud)

但是如何在Bash v3.2中做到这一点?

bash variable-assignment subshell

15
推荐指数
2
解决办法
3996
查看次数

函数参数在dict-comprehension中无法访问

为什么eval在字典理解中访问函数参数会失败?

ARGS1 = ('a1', 'b1')
def foo1(a1, b1):
    return {arg:eval(arg) for arg in ARGS1}
print foo1("A1", "B1") # NameError: name 'a1' is not defined
Run Code Online (Sandbox Code Playgroud)

列表理解中同样的事情很好:

ARGS2 = ('a2', 'b2')
def foo2(a2, b2):
    return [eval(arg) for arg in ARGS2]
print foo2("A2", "B2") # OK, print: ['A2', 'B2']
Run Code Online (Sandbox Code Playgroud)

没有功能它也很好用:

ARGS3 = ('a3', 'b3')
a3, b3 = ("A3", "B3")
print {arg:eval(arg) for arg in ARGS3} # OK, print: ['A3', 'B3']
Run Code Online (Sandbox Code Playgroud)

或者如果定义了全局变量:

ARGS4 = ('a4', 'b4')
a4, b4 = ("A4", "B4")
def …
Run Code Online (Sandbox Code Playgroud)

python closures arguments dictionary-comprehension

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

在Bash中,是否可以编写一个'identity'函数(相对于传递/返回的参数)

这种"身份"功能应满足以下2个属性:

identity $(identity a\ b c\ d)
# (Expected output:)
# a b
# c d
Run Code Online (Sandbox Code Playgroud)

并且,给定以下'argv_count'函数:

argv_count () { echo "argv_count('$@'):$#"; }
argv_count $(identity a\ b c\ d)
# (Expected output:)
# argv_count('a b c d'):2
Run Code Online (Sandbox Code Playgroud)

如果需要,可以在测试中引入额外的报价.

如下所示的简单候选者未能通过第二次测试:

identity () { for arg in "$@"; do echo "$arg"; done; }
Run Code Online (Sandbox Code Playgroud)

cat不是正确的解决方案,因为它是相对于stdin | stdout的标识函数.

variables bash quotes arguments expansion

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

如何将2个对象视为不相等而不是Python的识别,但具有相同的ID?

这段代码片段让我很困惑:

class O(object):
    pass
O() == O()             # False
O() is O()             # False
hash(O()) == hash(O()) # True !
id(O()) == id(O())     # True !!!
Run Code Online (Sandbox Code Playgroud)

我一直认为is运算符正在比较ids,并且默认实例相等check(==)也比较了ids,或者至少是hashes:

2类实例如何共享相同id但不以任何方式相同?

我正在使用CPython 2.7.6.

python hash equality object

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

"检测到glibc - free():无效指针 - 程序接收信号SIGABRT,已中止"

这是一个困扰我的最小代码:

#include <list>

class A;

class A {
private:
    std::list<A*> a_list;
//  int a_list;
public:
    A() : a_list() {}
};

int main() {
    A* a_tab = new A[1];
//  A* a_tab = new A();

    delete a_tab;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在执行时,我得到:

*** glibc detected *** ./main: free(): invalid pointer: 0x0000000000f6d018 ***
======= Backtrace: =========
/lib/libc.so.6(+0x774b6)[0x7f706f2914b6]
/lib/libc.so.6(cfree+0x73)[0x7f706f297c83]
./main[0x4007d2]
/lib/libc.so.6(__libc_start_main+0xfe)[0x7f706f238d8e]
./main[0x400649]
======= Memory map: ========
00400000-00402000 r-xp 00000000 08:03 108600                             /DELL/Users/Lucas/Desktop/Lifebeam/minimal/main
00601000-00602000 r--p 00001000 08:03 108600                             /DELL/Users/Lucas/Desktop/Lifebeam/minimal/main
00602000-00603000 rw-p 00002000 08:03 108600                             /DELL/Users/Lucas/Desktop/Lifebeam/minimal/main …
Run Code Online (Sandbox Code Playgroud)

c++ arrays free stl

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