小编irr*_*rom的帖子

如何在Bash中使用'set -e'时捕获ERR

我有一个简单的脚本:

#!/bin/bash
set -e
trap "echo BOO!" ERR 

function func(){
    ls /root/
}

func
Run Code Online (Sandbox Code Playgroud)

如果我的脚本失败,我想捕获ERR(因为它将在这里b/c我没有查看/ root的权限).但是,使用set -e它时不会被困住.没有set -eERR被困.

根据bash手册页,对于set -e:

... ERR上的陷阱(如果已设置)在shell退出之前执行....

为什么我的陷阱没有执行?从手册页看起来应该是这样.

bash interrupt-handling

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

如何在pdb中定义一个新函数

为什么我跑步时无法定义新功能pdb

例如,使用myscript.py:

#!/gpfs0/export/opt/anaconda-2.3.0/bin/python
print "Hello World"
print "I see you"
Run Code Online (Sandbox Code Playgroud)

如果我运行python -m pdb myscript.py并尝试以交互方式定义新函数:

def foo():
Run Code Online (Sandbox Code Playgroud)

我收到错误:

*** SyntaxError: unexpected EOF while parsing (<stdin>, line 1)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

python python-2.7 pdb

11
推荐指数
2
解决办法
1370
查看次数

什么是setReplaceMethod()以及它是如何工作的?

我对使用它感到困惑setReplaceMethod().看着?setReplaceMethod没有提供解释,谷歌搜索不是很有帮助.

问题:请解释setReplaceMethod(),它的用法及其工作原理(最好以一个例子为准).

r s4

8
推荐指数
2
解决办法
501
查看次数

了解gnuplot如何使用awk脚本

我有一个数据文件

data.txt

1 1
2 2
3 3
5 4
7 5
Run Code Online (Sandbox Code Playgroud)

我试图了解gnuplot如何使用awk.我可以用它来绘制它plot "<awk '{print $1,$2}' data.txt".但是,当我尝试load '<./script.sh data.txt'它不起作用.

script.sh

#!/bin/bash
awk 'BEGIN {
         printf "plot ";
    }
    {
        printf "%i %i\n",$1,$2
    }

' $1
Run Code Online (Sandbox Code Playgroud)

使用该script.sh方法返回错误:

gnuplot> plot 1 1

              ^
Run Code Online (Sandbox Code Playgroud)

"<./ script.sh data.txt",第1行:意外或无法识别的令牌

在我看来,我的awk脚本是内联awk语句的功能等价物.为什么这个script.sh方法不起作用?

仅供参考,我知道我可以做plot "data.txt" u 1:2我的数据.这只是我想要解决的更复杂问题的理想化版本.

awk gnuplot

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

在 R 中提取 LDA(线性判别分析)数据

当我运行这条线时

my.lda<-lda(Group ~ X1+X2+X3+X4, data = df)
Run Code Online (Sandbox Code Playgroud)

我得到一个很长的输出,以这行结束

Proportion of trace:

   LD1    LD2    LD3    LD4 

0.8750 0.0958 0.0286 0.0006 
Run Code Online (Sandbox Code Playgroud)

如何将迹线的 LD1 和 LD2 比例存储在单独的变量中?

谢谢

analysis r

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

拆分vim窗口,一个文件读/写,一个文件只读

我正在使用vim编辑文件.我想在同一个vim会话中打开另一个文件(当前存在)并分割我的屏幕.我希望它是只读的,因为我不想冒险意外编辑它.

如果我尝试:sp another_file.txt,它会以读/写模式打开它.

我该怎么做呢?

vim

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

在matplotlib中分页/滚动一组2D热图

我正在生成一组3D数据的2D热图.我希望能够有一个机制来交互式地浏览每个窗格.下面是一个简单的示例代码,我希望能够通过滑动条(或其他方法)以交互方式查看两个窗格(即z = [0,1]).matplotlib可以实现这一点,还是生成图像文件后我需要做后期处理?

import numpy as np
from matplotlib import pyplot as plt
data = np.random.randint(10, size=(5, 5, 2))
data_slice = np.zeros((5,5))
for i in range(0, 5):
  for j in range(0, 5):
     data_slice[i][j] = data[i][j][0]
plt.imshow(data_slice, cmap='hot', interpolation='nearest')
plt.show()
Run Code Online (Sandbox Code Playgroud)

编辑:我希望能够以交互方式执行此操作,并且似乎可能的重复尝试自动执行此操作.

python plot matplotlib

5
推荐指数
2
解决办法
1978
查看次数

使用 R 的 devtools 库函数“安装”时如何保留源文件

我正在尝试从源代码构建一个 R 包 (DESeq2),以便我可以调试它。我已经安装了所需的所有依赖项,并且正在按照 Hillary Parker 的说明创建 R 包。我正在使用 R-3.4.2 在 CentOS 6.6 上运行它。

我跑:

library("devtools")
install("DESeq2", keep_source=TRUE)
Run Code Online (Sandbox Code Playgroud)

它将它安装在我所有其他 R 库的目录中。当我看着安装DESeq2库它丢失了所有DESeq2/R/*.RDESeq2/src/*.cpp文件。

问题:这些文件在哪里,为什么没有安装?这似乎不是预期的行为。

debugging r devtools r-package

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

理解 raise RemoteDisconnected("远程端关闭连接"

我正在抓取 twitter 试图让朋友/用户被关注以获得 twitter 用户列表。我在 OSX 10.13 上使用 tweepy 和 python 3.6.5。一个缩写的代码块:

def get_friends_for_each_twitter_user(UserL=None, Name=None):
   .
   . # Auth keys and such
   .
   for user in UserL:  ### This is a list of USER class with the below fields ###
        ### Handle protected users ###
        if(user.protected == True):
            user.friendsL = "protected"
            continue
        screenNameL=[]
        friendIDL=[]
        friendL=[]
        friendScreenNameL=[]
        ### Get IDs of people that this user follows (i.e. 'friends') ###
        for page in tweepy.Cursor(api.friends_ids, screen_name=user.screenName).pages():
            friendIDL.extend(page)
            time.sleep(60)
        ## Loop through IDs, get …
Run Code Online (Sandbox Code Playgroud)

python tweepy python-3.x

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

将 docker tar 文件转换为奇异图像?

我是 Docker 和 Singularity 的新手。我最近创建了规范的main.c.

#include <stdio.h>
#include <stdlib.h>

int main(void){
    printf("Hello Docker World!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我静态编译了这段代码,即

gcc -static -static-libgcc -static-libstdc++ -o hello main.c
Run Code Online (Sandbox Code Playgroud)

然后我构建了docker镜像并可以运行它,即

dockerd &  ## Start Docker daemon
docker build --tag hello .
docker run hello   ## Outputs "Hello Docker World"
Run Code Online (Sandbox Code Playgroud)

然后我保存图像,以便我可以将其导出到第二台计算机(它没有 docker,但确实有奇点),即

docker save hello > hello.tar
Run Code Online (Sandbox Code Playgroud)

现在在第二台没有 docker 但有奇点的机器上,我想创建一个奇点图像。奇点文档给出了从 Docker Hub 上的 docker 镜像创建奇点镜像的说明,但没有给出从 docker tar 文件转换的说明。

问题:我将如何从我的图像中创建一个奇点图像 hello.tar

docker singularity-container

5
推荐指数
2
解决办法
2343
查看次数