小编kon*_*box的帖子

检查传递给Bash脚本的参数数量

如果不满足所需的参数计数,我希望我的Bash脚本能够打印错误消息.

我尝试了以下代码:

#!/bin/bash
echo Script name: $0
echo $# arguments 
if [$# -ne 1]; 
    then echo "illegal number of parameters"
fi
Run Code Online (Sandbox Code Playgroud)

由于某些未知原因,我遇到以下错误:

test: line 4: [2: command not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash parameter-passing command-line-arguments

663
推荐指数
6
解决办法
71万
查看次数

通过具有简单自定义日志记录框架的线程将消息记录到JavaFX TextArea的最有效方法

我有一个简单的自定义日志框架,如下所示:

package something;

import javafx.scene.control.TextArea;

public class MyLogger {
    public final TextArea textArea;

    private boolean verboseMode = false;
    private boolean debugMode = false;

    public MyLogger(final TextArea textArea) {
        this.textArea = textArea;
    }

    public MyLogger setVerboseMode(boolean value) {
        verboseMode = value;
        return this;
    }

    public MyLogger setDebugMode(boolean value) {
        debugMode = value;
        return this;
    }

    public boolean writeMessage(String msg) {
        textArea.appendText(msg);
        return true;
    }

    public boolean logMessage(String msg) {
        return writeMessage(msg + "\n");
    }

    public boolean logWarning(String msg) {
        return writeMessage("Warning: …
Run Code Online (Sandbox Code Playgroud)

java logging multithreading textarea javafx

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

通过排除其父文件夹为多个目录创建单个tar文件

我正在研究一个bash shell脚本,它通过将其父文件夹排除到所有目录并且还排除指定的文件夹来为多个文件夹创建tar文件.

目录结构是:

$ ls dir1
dir11 testdir

$ ls dir2
dir12 testdir2

$ ls dir3
dir13 testdir3

$ tar -cvf file1.tar dir1 dir2 dir3 --exclude="test*"
Run Code Online (Sandbox Code Playgroud)

以上工作正常.

但我不想在tar中使用dir1,dir2和dir3文件夹.我只需要在文件和目录中.

所以我的最终焦油应该包含如下

$ tar -tvf file1.tar
dir11 dir12 dir13
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题.提前致谢

linux shell tar

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

如何为自定义istream/streambuf实现seekg()?

十年前,我曾经是一名C++专家,但在过去的十年里,我一直在编写Java.我刚刚开始使用一个小型第三方XML解析器的C++项目.XML解析器接受STL istream.我的XML数据来自Windows COM IStream.我以为我会做正确的事情并创建一个适配器来获取IStream数据并通过istream将它呈现给XML解析器.

我按照http://www.mr-edd.co.uk/blog/beginners_guide_streambuf上的优秀教程创建了一个COMStreambuf,它从底层的COM IStream获取数据,并将其用作自定义COMIstream的缓冲区.一切看起来都不错,但我从解析器中得到一个读错误.

事实证明,解析器通过在istream上使用seekg()来读取整个文件到内存中以查找其大小,然后使用seekg()返回到开头一次读取它.不出所料,前面提到的教程决定"保存[实施寻求的指示]另一篇文章",这显然从未写过.

有人能告诉我我需要做什么来实现我的自定义istream/streambuf的seekg()吗?我会冒险自己做(我的第一个倾向是覆盖istream中的东西),但由于我在STL的深层次和我的Java心态,我担心我会做一些不完整的事情并且有一个脆弱的解决方案.(例如,在没有阅读教程的情况下,我从来没有想过通过编写新的streambuf来制作自定义istream,或者我需要使用默认语言环境调用imbue()等)

谢谢你的帮助.我对这个网站印象非常深刻 - 无论是参与者的知识还是他们友好,诚实的承认谁拥有最佳答案.:)

c++ xml istream streambuf seekg

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

rake中order_only先决条件和non-order_only先决条件之间的区别

Rake 在13.0中添加了一个order_only功能,该功能可能是基于 GNU Make 的仅限订单先决条件

有关仅订单先决条件应如何工作的信息在此问题中进一步阐明。

然而问题是我不明白它在 rake 中是如何工作的。例如,如果我运行rake install然后运行rake build,则当不是订单的唯一先决条件rake install时,不会再次运行。build也许我只是被误导了,或者可能是其他一些因素,比如时间戳以及该needed?方法如何影响它的行为,但我有点厌倦了进一步检查 rake 的源代码。

在合并提交中,仅顺序先决条件似乎只是与 分配不同prerequisites,并且没有其他任何说明。

无论如何,我希望有人能够详细地描述如何order_only在 rake 中完整地工作;如果可能的话,展示示例并引用 rake 的源代码。这将对我和其他 Rakefile 编写者有很大帮助。

ruby rake

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

如何使用带有o选项和[]的grep?

我试图找出如何使用grep与-o和[]括号.所以我有一句话说

 <START connection="IP" name="test" extraname="testa" 2" data1="1" IP="192.1.1.1"></START>
 <START connection="IP" name="1test2" extraname="testb" 2" data1="1" IP="192.1.1.2"></START>
Run Code Online (Sandbox Code Playgroud)

我基本上想要 name="test 2"

所以我试过了:

grep -o 'name="[*]"'
grep -o 'name="*"'
Run Code Online (Sandbox Code Playgroud)

我大多得到name="".此外,显示大量示例的页面链接也很棒.

bash grep brackets

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