小编ajw*_*ood的帖子

一个新的 Bash 会话的多个 init 文件

我正在编写一个脚本,该脚本将执行一个新的 bash 会话。根据某些逻辑,它会找到一个将用于新 shell 的 init 脚本。我想知道除了系统初始化脚本之外,是否有一种很好的方法可以告诉新的 bash 会话使用找到的 init 脚本进行初始化。--init-file 选项似乎要求替换文件而不是附加文件。

目前,我有一个乱七八糟的设置,其中包含一个环境变量,其中包含找到的 init 脚本的路径,该脚本来自包装器 init 文件以及系统文件。有
exec bash --init-file "/etc/profile;~/.bashrc;${myInit}"可能吗?

谢谢,安德鲁

bash shell scripting

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

正则表达式在vim中搜索

我正在使用vim在文本文件上进行一些模式匹配.我启用了搜索突出显示功能,以便确切地知道每次搜索时匹配的内容,并且我感到困惑.

考虑搜索[a-z]*以下文字:

123456789abcdefghijklmnopqrstuvwxyxz987654321ABCDEFGHIJKLMNOPQRSTUVWQXZ

我希望此搜索匹配[az]范围内的零个或多个连续字符.相反,我在整条线上获得了一场比赛.

这应该是预期的行为吗?

谢谢,

安德鲁

regex vim

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

正则表达式:删除方括号的内容

是否有正则表达式可用于搜索/替换以删除方括号(和括号)中发生的所有内容?

我试过\[.*\]扼杀额外的东西(例如"[chomps] extra [stuff]")

此外,\[.*?\]当存在嵌套括号时,与惰性匹配相同的操作也不起作用(例如"stops [chomping [too] early]!")

regex perl

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

为什么这个Perl变量保持其值

以下两个Perl变量声明之间有什么区别?

my $foo = 'bar' if 0;

my $baz;
$baz = 'qux' if 0;
Run Code Online (Sandbox Code Playgroud)

当它们出现在循环的顶部时,差异很大.例如:

use warnings;
use strict;

foreach my $n (0,1){
    my $foo = 'bar' if 0;
    print defined $foo ? "defined\n" : "undefined\n";
    $foo = 'bar';
    print defined $foo ? "defined\n" : "undefined\n";
}

print "==\n";

foreach my $m (0,1){
    my $baz;
    $baz = 'qux' if 0;
    print defined $baz ? "defined\n" : "undefined\n";
    $baz = 'qux';
    print defined $baz ? "defined\n" : "undefined\n";
}
Run Code Online (Sandbox Code Playgroud)

结果是

undefined …
Run Code Online (Sandbox Code Playgroud)

variables perl initialization declaration

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

从require'd perl脚本访问subs

我将使用该require语句导入一些perl代码.我要导入的代码是mylibA.pl:

#!/usr/bin/perl
package FOO::BAR;

sub routine {
    print "A message!\n";
}
Run Code Online (Sandbox Code Playgroud)

并且mylibB.pl:

#!/usr/bin/perl
package FOO::BAZ;

sub routine {
    print "Another message!\n";
}
Run Code Online (Sandbox Code Playgroud)

然后我会像这样使用它:

#!/usr/bin/perl
foreach my $lib (qw/ mylibA.pl mylibB.pl /){
     require $lib;
     print "Make a call to ${lib}'s &routine!\n";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让我的脚本找出使用该require语句引入的命名空间?

perl namespaces

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

Perl哈希在声明时引用自身

在声明Perl哈希时,我想知道是否可以使用在声明中先前分配的值.

我想一次性完成相同的操作:

my %H   = (something => generateString());
$H{foo} = $H{something} . "/FOO",
$H{bar} = $H{something} . "/BAR",
Run Code Online (Sandbox Code Playgroud)

我可以想象这样的事情:

my %H = (
   something => generateString(),
   foo       => $_{something} . "/FOO",
   bar       => $_{something} . "/BAR",
);
Run Code Online (Sandbox Code Playgroud)

编辑:要清楚,我不关心实际的参考,以$H{something}(即改变$H{something}后应该不会影响$H{foo}).我只想把它的值放到字符串连接中.

perl

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

使用Perl查找文件的效率

我正在尝试从Perl脚本中的目录树中获取一组文件.有时我可以通过glob扩展来获取它们,但是我只能用正则表达式捕获我需​​要的东西.

例如,我可能希望获得verify/*.finished与shell扩展匹配的所有文件.当我知道"验证"目录所处的深度时,使用glob(<pattern>)比匹配所有内容更快File::Find(例如glob("*/*/*/verify/*.finished"),当我需要依赖正则表达式匹配时,我会有点卡住.

有没有办法通过glob正则表达式的灵活性来提高效率?

perl glob find

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

在向SGE提交Perl生成的脚本时捕获作业ID

Perl无法打开同时运行和运行的命令管道,这会在通过qsub提交到SGE时导致问题,因为我丢失了提交的作业ID.如何将生成的脚本提交给SGE 捕获SGE分配的作业ID?

perl qsub sungridengine

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

当前命名空间的Python字符串格式

我发现自己写了很多这样的东西:

s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(v1="foo", v2=v2, v3=v3, v4=v4, v5=v5)
Run Code Online (Sandbox Code Playgroud)

是否有可能使Python string.format使用当前命名空间中的变量?以上调用可以简化为:

s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(v1="foo")
Run Code Online (Sandbox Code Playgroud)

python

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

Django通过内联网上的nfs静态内容

我正在部署基于大量静态内容的Django应用程序.使用该应用程序的所有计算机都在Intranet上,静态内容可通过nfs获得.

是否可以将django配置为允许用户通过其nfs挂载获取静态数据,而不是通过Web服务器强制执行?

如果我在模板中有这个:

<img src="/path/to/img.png"/>
Run Code Online (Sandbox Code Playgroud)

浏览器正在请求该图像

http://localhost:8000/path/to/img.png
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是让客户端将其视为本地路径,而不是向服务器询问它.

django

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

面具下的Numpy标准偏差

如何在numpy数组中沿特定轴的掩模下取标准偏差?

data = array([[ 0,  1,  2,  3,  4],
              [ 5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19],
              [20, 21, 22, 23, 24]])

M = array([[0, 1, 0, 0, 0],
           [1, 1, 1, 1, 1],
           [1, 1, 0, 1, 1],
           [0, 0, 1, 0, 0],
           [0, 0, 0, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

结果数组应该是:

masked_std = std( data, axis=0, mask=M )
[ std([5,10]), std([1,6,11]), std([7,17]), std([8,13], std([9,14]) ]
Run Code Online (Sandbox Code Playgroud)

python numpy

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

如何将多列中的列表元素转换为pandas DataFrame中的行?

我有一个像这样的数据帧:

                     args  inputs
0  [a.pl, foo, -bar, baz]  [a, b]
1  [a.pl, BAH, -bar, baz]  [a, c]
Run Code Online (Sandbox Code Playgroud)

有多列,所有单元格都包含字符串列表.我如何转换这些列表来产生这个:

         args inputs
index i             
0     1  a.pl      a
      2   foo      b
      3  -bar    NaN
      4   baz    NaN
1     1  a.pl      a
      2   BAH      c
      3  -bar    NaN
      4   baz    NaN
Run Code Online (Sandbox Code Playgroud)

python pandas

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