小编Pal*_*han的帖子

有没有办法捕获用户命令bash找不到并用它做一些事情?

假设我在bash中键入saklfjsklj,我得到:

bash: saklfjsklj: command not found
Run Code Online (Sandbox Code Playgroud)

有没有办法拦截并执行脚本?

bash shell scripting

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

当使用nnet包中的multinom函数时,如何控制神经网络的架构?

换句话说,当我这样做时,nnet(...)我可以使用size参数来控制隐藏层中的单位数.我的特定模型需要输出概率所以我想要逻辑单元,所以我从nnet包转向multinom到我的预测函数中输出type ='probs'.我怎样才能传递一个大小参数?当我用它来调用它时,比如size = 5或者其他什么我得到一个错误:

 formal argument "size" matched by multiple actual arguments
Run Code Online (Sandbox Code Playgroud)

r neural-network

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

如何使用elisp在缓冲区中插入长度列表?

如果我做Cu M- :(将lisp语句的结果插入缓冲区)然后我做了类似的事情:

(progn (setq x 0 l '()) (while(< x 30) (push (random 99) l) (incf x 1)) (nreverse l))
Run Code Online (Sandbox Code Playgroud)

我明白了:

(89 29 27 23 56 88 37 11 33 20 98 95 ...)
Run Code Online (Sandbox Code Playgroud)

带尾随省略号.这是怎么回事?像结果列表中的缓冲区插入一样.

emacs elisp

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

getifaddrs给我重复的网络接口地址吗?

我正在寻找一个特定的网络地址使用一个小片段,如:

  char name[INET_ADDRSTRLEN];
  struct ifaddrs *iflist;
  if (getifaddrs(&iflist) < 0)
    perror("getifaddrs");

  struct in_addr addr;
  for (struct ifaddrs *p = iflist; p; p = p->ifa_next)
    {
      if (strcmp(p->ifa_name, "lo") == 0)
        {
          addr = reinterpret_cast<struct sockaddr_in*>(p->ifa_addr)->sin_addr;
          if (inet_ntop(AF_INET, &addr, name, sizeof(name)) == NULL)
            {
              perror("inet_ntop");
              continue;
            }

          cout << name << " ---> " << if_nametoindex("lo") << " : " << addr.s_addr << endl;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

1.0.0.0 ---> 1 : 1
127.0.0.1 ---> 1 : 16777343
Run Code Online (Sandbox Code Playgroud)

我不明白第一个结果..这不会发生在类似eth#的东西上,但它与另一个名为bond0的接口有关.这是什么?

c++ network-programming

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

使用预处理器语法获取const char

为了纠正错别字,并添加我忘记提及的问题,这里是宏:

#define SUFFIX .new
#define STR(x) #x
#define GENFILE(name,suff) STR(timings/name suff)

GENFILE(test1, SUFFIX)
Run Code Online (Sandbox Code Playgroud)

上面的代码生成timings/test1 .new,如果我没有那个额外的空间,我会得到我想要的,我该如何绕过它?

c macros stringification c-preprocessor

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

如何使用isnan作为std :: find_if的谓词函数(c ++ 11)

我有一段代码正在运行,std::vector<double> cats并正在做这样的事情:

std::find_if(cats.begin(), cats.end(), std::isnan<double>);
Run Code Online (Sandbox Code Playgroud)

这在4.3之前的gcc下编译,但不再用gcc 4.7.2编译.我收到这样的错误:

error: no matching function for call to 'find_if(std::vector<double>::iterator, std::vector<double::iterator, <unresolved overloaded function type>)'
Run Code Online (Sandbox Code Playgroud)

如何在新的gcc下编译?并且最好也在较旧的gcc下?没有摆脱stl并手动编写循环当然.如果不可能同时做到这两点,那么新的gcc就足够了,我将两个实现都放在那里#define.

c++ c++11 gcc4.7

3
推荐指数
2
解决办法
1233
查看次数

使用换行符在bash中构建一个字符串

我正在浏览bash中的一个脚本,根据条件我想要附加到变量不同的东西,然后在最后显示它,如下所示:

VAR="The "

if [[ whatever ]]; then
    VAR="$VAR cat wears a mask"
elif [[ whatevs ]]; then
    VAR="$VAR rat has a flask"
fi
Run Code Online (Sandbox Code Playgroud)

但是如果我想在偶尔添加换行符时尝试使用这种形式来建立VAR,我会遇到困难.VAR="$VAR\nin a box"例如,我该怎么办?我已经看到过$'\n'之前的用法,但是$VAR因为附加而没有尝试使用.

bash shell newline

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

如果我在C++中使用operator new []分配一个对象数组但是单独解除分配它是否仍构成内存泄漏?

我知道一个人不应该混合和匹配new []与删除,反之亦然(删除[]与新).所以

int* k = new int[5];
delete k;
Run Code Online (Sandbox Code Playgroud)

是有缺陷的,因为它不会释放分配的数组.但是以下错了吗?

int *k = new int[5];
for (int i = 0; i < 5; ++i)
    delete k[i];
Run Code Online (Sandbox Code Playgroud)

错误我的意思是 - 它实际上会导致内存泄漏或未定义的行为吗?

编辑**我的坏,我打算输入的是:

int** k = new int*[5];
memset(k, 0, sizeof(int*)*5);

k[3] = new int;

for (int i = 0; i < 5; ++i)
    if (k[i])
    {
        delete k[i];
        k[i] = 0;
    }
Run Code Online (Sandbox Code Playgroud)

在上面,5个地方的块永远不会被释放,除非我自己调用delete [] k,虽然我可以使用new/delete来管理它内部的int.

c++ memory memory-leaks memory-management

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

是否可以制作一个考虑新文件的补丁文件并创建它们?

假设我有两个目录,AB和他们每个人都有file1.txtfile2.txt.如果我去修改file2.txt一下,我可以运行递归diff -u来生成补丁,然后我就可以说cd A && patch < thepatch.patch A并将这些更改应用到内容中A.但是,如果在进行修改时B,我也会创建一个新文件file3.txt.我如何获得一个补丁,当应用于A补充丢失的文件?

现在,只运行diff一个丢失文件的输出说Only in B: file3.txt

linux bash diff patch

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

如何将部分参数传递给 gnu 并行命令

我正在尝试运行一个 GNU 并行命令并向它传递一堆日期,就像这样,但是一个更复杂的命令:

parallel '/some/binary {}' ::: 20131017 20131018
Run Code Online (Sandbox Code Playgroud)

这有效,但是我需要日期跨越两个不同的月份,并且对于参数 20131018,命令应该如下所示:

'/some/binary 201310/20131018'
Run Code Online (Sandbox Code Playgroud)

所以它分裂了论点的第一部分..我怎样才能达到这个效果?我想象的 bash 变量方面的思考:

'/some/binary {:4}/{}' ::: 20130910 20131018 etc...
Run Code Online (Sandbox Code Playgroud)

parallel-processing bash gnu-parallel

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