小编Noe*_*Yap的帖子

bash脚本:如何找到"symlink/.."的绝对路径?

鉴于两个文件:

generic/scripts/hello.sh
parent/scripts -> generic/scripts
Run Code Online (Sandbox Code Playgroud)

parent/scripts/hello.sh从任何位置调用时,我希望(在脚本中)找到父目录的完整路径.在这种情况下parent.

主要问题是在unix 中parent/scripts/..引用generic.另一方面,涉及正则表达式的所有内容都不是通用的,可能容易出错.

解决方案不起作用:

`dirname $0`/..
realpath  `dirname $0`/..
readlink -f `dirname $0`/..
`cd *something*/..; pwd`
`perl ... abs_path(...)`
Run Code Online (Sandbox Code Playgroud)

所有这些都将指向generic而不是parent因为象征性的联系.

涉及正则表达式的所有内容都不具有适应性/通用性,对于更复杂的路径可能会失败...路径中可能还有其他符号链接,你想要祖父,它是一个涉及的目录名..,你通过$ PATH调用它...

而且,我希望它在任何情况下都可以工作,即使它被称为通过$PATH.

这个简单问题的任何简单安全解决方案?我的意思是它毕竟只是获取父目录!

我用过的:

dir=$( dirname $( cd `dirname $0` >/dev/null; pwd ) )
Run Code Online (Sandbox Code Playgroud)

Dunno如果它是完美的但似乎表现得像预期的那样.

unix linux bash shell filepath

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

Elasticsearch QueryBuilder匹配多个术语

以下列格式给出ES索引中的JSON:

{
    "pin": {
        "id": 123,
        "location": {
            "lat": 456,
            "lon":-789
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下内容使文档与id字段匹配:

client.prepareSearch("index_name")
        .setTypes("pin")
        .setQuery(QueryBuilders.termQuery("id", 123))
        .execute()
        .actionGet();
Run Code Online (Sandbox Code Playgroud)

相反,我正在尝试匹配多个字段,即.(location.lat,location.lon).

QueryBuilders.termQuery(); // accepts only a single term
Run Code Online (Sandbox Code Playgroud)

尝试了一些替代品,但似乎没有任何替代方案,例如:

QueryBuilder queryBuilder = QueryBuilders.boolQuery()
        .must(QueryBuilders.termQuery("location.lat", 456))
        .must(QueryBuilders.termQuery("location.lon", -789));

client.prepareSearch("index_name")
        .setTypes("pin")
        .setQuery(queryBuilder)
        .execute()
        .actionGet();
Run Code Online (Sandbox Code Playgroud)

java elasticsearch

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

如何在Jenkins的构建页面上直接显示信息?

我想在Jenkins中拥有以下工作流程:

  • 用户点击"立即构建"
  • 用户填写构建参数
  • 用户点击"构建"
  • 信息生成(通过脚本)并与"继续"按钮一起呈现给用户
  • 用户点击"继续"按钮,它只是触发另一个作业

如何才能做到这一点?

jenkins

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

如何在AngularJS中设置重复的元素id?

我想做点什么:

<div class='row' ng-repeat='row in _.range(0,12)'>
    <div id='{{row}}'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

但在控制器中我尝试:

function SetterForCatanCtrl($scope) {
    $scope._ = _;
    try {
        var tile = document.getElementById('5');
        tile.style.backgroundImage = "url('aoeu.png')";
    } catch (e) {
        alert(e)
    }
}
Run Code Online (Sandbox Code Playgroud)

getElementById 返回null,那么如何使用AngularJS变量设置元素的id?

angularjs

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

如何使用git-p4克隆分支?

我做了:

git p4 clone //depot/path/to/project/trunk/@all project
Run Code Online (Sandbox Code Playgroud)

创建master分支project.现在我想克隆//depot/path/to/project/releaserelease分支project.怎么做的?

更新:使用--detect-branches也不起作用.它报告它正在更新两个分支(当真正有三个分支时)但git branch报告只有master存在.

git-p4

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

如何使用JsTestDriver测试AngularJS控制器?

我有以下代码:

function TestStats($xhr) {
    $xhr(
            'GET',
            '/test-dashboard/get-projects.json',
            angular.bind(this, function(code, response) {
                this.projects = response.projects;
                this.projects.splice(0, 0, undefined);
            }));

    this.$watch('project', angular.bind(this, function() {
        this.testClassStats = undefined;

        if (this.project) {
            $xhr(
                    'GET',
                    '/test-dashboard/get-test-stats.json?project=' + this.project,
                    angular.bind(this, function(code, response) {
                        this.testClassStats = response.testClassStats;
                    }));
        }
    }));
};

TestStats.prototype.greet = function(name) {
  return "Hello " + name + "!";
};

TestStats.$inject = ['$xhr'];
Run Code Online (Sandbox Code Playgroud)

以及以下测试:

TestDashboardUnitTest = TestCase("TestDashboardUnitTest");

TestDashboardUnitTest.prototype.testAoeu = function() {
    var xhrStub = function(method, url, callback) {
    };
    var testStats = new TestStats(xhrStub); …
Run Code Online (Sandbox Code Playgroud)

javascript js-test-driver angularjs

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

是否可以在JUnit 4中排除多个类别?

我想做的事情如下:

@RunWith(Categories.class)
@Categories.IncludeCategory(Small.class)
@Categories.ExcludeCategory({Manual.class, NonFunctional.class})
@Suite.SuiteClasses(AllTests.class)
public class SmallTests {
}
Run Code Online (Sandbox Code Playgroud)

但是ExcludeCategories只接受一个类,而不是类数组.

java junit4

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

How to alias an export in bash

I am trying to set an env variable which I can use to do relative directory chains. I am trying to do it the following way but cant get it to work. How do I do it?

alias sroot="export SROOT="$PWD""
alias drumit="cd $SROOT/abc/def/drumit"
Run Code Online (Sandbox Code Playgroud)

If I type sroot, it takes the alias but when i type drumit, it gives me an error saying

bash: cd: /abc/def/drumit: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Looks like when the shell was launched it takes $SROOT …

bash alias export

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

如何以编程方式将依赖项添加到Gradle配置?

我有以下代码:

static def getFamilyDependencies(ConfigurationContainer configurations) {
    def result = configurations.collect { configuration ->
        configuration.allDependencies.findAll { dependency ->
            dependency instanceof DefaultProjectDependency
        } collect { projectDependency ->
            projectDependency.dependencyProject.name
        }
    } flatten()

    result as Set
}
Run Code Online (Sandbox Code Playgroud)

我想测试一下.到目前为止,我有:

@Test
void shouldGetFamilyDependencies() {
    final Project project = ProjectBuilder.builder().build()

    final configurations = project.getConfigurations()

    configurations.create('configuration0')
    configurations.create('configuration1')

    configurations.each { configuration ->
        println "***************** ${configuration}"

        configuration.allDependencies.each {
            println "@@@@@@@@@@@@@@@@@ ${it}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何向配置添加依赖项?以下不起作用:

    final Project subproject = ProjectBuilder.builder().build()
    configurations.configuration0 {
        subproject
    }
    configurations.configuration1 {
        allDependencies {
            subproject
        } …
Run Code Online (Sandbox Code Playgroud)

gradle

7
推荐指数
3
解决办法
3813
查看次数

如何阅读JSch命令输出?

我有以下代码:

JSch jsch = new JSch();
jsch.setKnownHosts(dotSshDir + "/known_hosts");
jsch.addIdentity(dotSshDir + "/id_rsa");

Session session = jsch.getSession(userName, hostname, 22);
session.connect();

ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand(command);
channel.setInputStream(null);
channel.setErrStream(System.err);
Reader reader = new InputStreamReader(channel.getInputStream());

char[] buf = new char[1024];
int numRead;
while ((numRead = reader.read(buf)) != -1) {
    String readData = String.valueOf(buf, 0, numRead);
    result.append(readData);
    buf = new char[1024];
}
Run Code Online (Sandbox Code Playgroud)

它试图从读者那里读取.我该如何解决?我该怎么做才能找到正在发生的事情?

java ssh jsch

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