小编gni*_*urf的帖子

grep in bash script + Jenkins

我有一个在bash脚本中工作的grep命令:

if grep 'stackoverflow' outFile.txt; then
 exit 1
fi
Run Code Online (Sandbox Code Playgroud)

这在我的主机上运行时工作正常.然而,当我从Jenkins构建步骤调用它时,它每次都退出0,而不是看到'stackoverflow'.出了什么问题?

bash grep jenkins

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

不同文件夹中具有相同名称的文件

我正在寻找一个命令行,可以对两个具有相同名称但在不同文件夹中的文件执行某些操作.

例如,如果

  • 文件夹中A包含的文件1.txt,2.txt,3.txt,...
  • 文件夹中B包含的文件1.txt,2.txt,3.txt,...

我想将两者连接起来的文件A/1.txtB/1.txt,和A/2.txtB/2.txt,...

我正在寻找一个shell命令来做到这一点:

if file name in A is equal the file name in B then: 
    cat A/1.txt B/1.txt
end if
Run Code Online (Sandbox Code Playgroud)

在文件夹中的所有文件AB,如果只有名称匹配.

linux bash shell scripting file

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

在bash中将当前日期增加5分钟

在我的脚本中,我将当前日期存储在一个变量中,但是我希望该变量提前 5 分钟存储日期。

29/10/2014-10:47:06 to 29/10/2014-10:52:06
Run Code Online (Sandbox Code Playgroud)

在 Bash 中是否有一种快速简便的方法来做到这一点?例如,如果时间是 10:59:00(识别进入下一小时),寻找一个也能正常工作的解决方案。

我找到了一些 Perl 解决方案,但对 Bash 没有任何帮助。

bash date

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

Bash:重定向文件描述符

我希望有人可以解释一个现象.正如标题所示,我正在学习文件描述符的重定向.在此过程中,我遇到了一个关于重定向符号使用的问题,特别是在设置永久重定向时.我注意到在某些情况下,我是否使用<或似乎并不重要>.例如,使用以下脚本:

#!/bin/bash

#Setting file descriptor 3 to redirect  to STDIN
exec 3<&0

#Setting STDIN to read from input file
exec 0<inputFile


while read var
do
    echo "$var"

done

#Setting STDIN to read from file descriptor 3 which is redirected to the default STDIN
exec 0<&3

read -p "Enter a word:" word

echo "$word"
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,如果我使用><在陈述exec 3<&0或中,似乎并不重要exec 0<&3.在这些陈述中的任何一个中,似乎如果我换出重定向符号,我仍然得到完全相同的结果.对我来说,对行进行相同类型的更改似乎很明显:

exec 0<inputFile
Run Code Online (Sandbox Code Playgroud)

exec 0>inputFile
Run Code Online (Sandbox Code Playgroud)

不会产生相同的结果,因为将STDIN重定向到文件与将文件重定向到STDIN不同.

所以我的问题是:

  1. <vs >:

    # …
    Run Code Online (Sandbox Code Playgroud)

bash redirect file-descriptor

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

排除文件的grep数组参数

我想从我的grep命令中排除一些文件,为此我使用参数:

--exclude=excluded_file.ext
Run Code Online (Sandbox Code Playgroud)

为了更容易阅读,我想使用带有排除文件的bash数组:

EXCLUDED_FILES=("excluded_file.ext")
Run Code Online (Sandbox Code Playgroud)

然后传递$ {EXCLUDED_FILES}数组grep,如:

grep -Rni "my text" --exclude=${EXCLUDED_FILES}
Run Code Online (Sandbox Code Playgroud)

我如何将数组作为参数传递给grep命令?

linux bash grep

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

从python中的列表中删除项目

我是python的新手,我想知道如何从列表中删除项目.说我有这个清单:

a=[(102,12,0),(123,12,0),(124,12,1)]
Run Code Online (Sandbox Code Playgroud)

我想删除最后有0的项目,所以我的列表最终会像:

a = [(124,12,1)]
Run Code Online (Sandbox Code Playgroud)

python list

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

GCRectMake的iOS错误 - 将'int'发送到不兼容类型'CGRect'(又名'struct CGRect')的参数

我是iOS编程的新手.

我正在关注一本指南,这本书正是在意大利语的iOS上.对于第一个应用程序,我必须ViewController.m像这样修改:

#import "ViewController.h"

@implementation ViewController

- (void)didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];
    // Release Any chached data, images, etc that aren't in use.
}    

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)datiDettaglioChiudi:(datiDettaglio *)controller{
    //altre operazioni possibii dopo la dismissModal
    NSLog(@"... di ritorno dal DismissModal...");
    [controller dismissViewControllerAnimated:YES completion:nil];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"dettaglio"]){
        datiDettaglio *mioController1 = segue.destinationViewController;
        [mioController1 setDelegate:self];
        //aggiunta di una UILabel - qui è …
Run Code Online (Sandbox Code Playgroud)

objective-c uiviewcontroller ios cgrectmake

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

删除c#中的文件夹和子文件夹

我有一个文件夹,其中包含子文件夹和具有只读属性(文件和文件夹)的文件.我想删除带有子文件夹和文件的文件夹.

我写了这段代码:

static void Main(string[] args)
{        
    DirectoryInfo mm = new DirectoryInfo(@"c:\ex");
    string aa = Convert.ToString(mm);
    string[] allFileNames = 
        System.IO.Directory.GetFiles(aa, 
                                     "*.*", 
                                     System.IO.SearchOption.AllDirectories);
    string[] alldirNames = 
       System.IO.Directory.GetDirectories(aa, 
                                        "*", 
                                        System.IO.SearchOption.AllDirectories);

    foreach (string filename in allFileNames)
    {
        FileAttributes attr = File.GetAttributes(filename);
        File.SetAttributes(filename, attr & ~FileAttributes.ReadOnly);

    }

    foreach (string dirname in alldirNames)
    {
        FileAttributes attr = File.GetAttributes(dirname);
        File.SetAttributes(dirname, attr & ~FileAttributes.ReadOnly);
        Directory.Delete(dirname  , true);
    }

    FileInfo[] list = mm.GetFiles();

    foreach (FileInfo k in list)
    {
        k.Delete();
    }
    mm.Delete();
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是每当我运行程序时它会给我以下错误:

找不到路径'c:\ ex\xx\bb'的一部分.

这个错误是什么意思?

c#

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

简单的bash CSV数组问题

我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:

20,80,443,53
Run Code Online (Sandbox Code Playgroud)

该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.

csv arrays bash

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

如何为bash变量分配locate的第一个结果?

我可以从bash为某个变量分配一个路径:

VAR1=/home/alvas/something
Run Code Online (Sandbox Code Playgroud)

我可以自动找到它:

$ cd
$ locate -b "something" .
/home/alvas/something
/home/alvas/someotherpath/something
Run Code Online (Sandbox Code Playgroud)

但是如何将locate 的第一个结果作为变量的值分配?

我尝试了以下但它不起作用:

alvas@ubi:~$ locate -b 'mosesdecoder' . | VAR1=
alvas@ubi:~$ VAR1
VAR1: command not found
Run Code Online (Sandbox Code Playgroud)

variables bash find locate

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