小编Soc*_*owi的帖子

Java中的绘图图

我正在开发的Java Swing GUI需要根据程序中生成的x和y坐标绘制2D图形.

是否有Swing组件?

或者是否有任何其他开源软件包用于此目的?

java user-interface plot swing graph

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

对每个匹配一次执行命令的通配符

备用标题:如何循环而不循环或使用xargs。

最近,由于具有许多功能,我切换到zsh。我很好奇:是否有一种功能可以扩展通配符,以便每个匹配项只执行一次命令,而不是所有匹配项一次执行。

该命令ebook-convert input_file output_file [options]仅接受一个输入文件。当我要转换多个文件时,我必须多次手动执行命令或使用循环,例如:

for i in *.epub; do 
    ebook-convert "$i" .mobi
done
Run Code Online (Sandbox Code Playgroud)

我想要的是一个通配符,其功能类似于循环,以便我可以保存一些击键。让说通配符?。命令

ebook-convert ?.epub .mobi
Run Code Online (Sandbox Code Playgroud)

应该扩展到

ebook-convert 1stMatch.epub .mobi
ebook-convert 2ndMatch.epub .mobi
ebook-convert 3rdMatch.epub .mobi
...
Run Code Online (Sandbox Code Playgroud)

仍然对其他答案感兴趣

我接受了一个对我有用的答案(感谢Grisha Levit)。但是,如果您知道其他具有此功能的shell,比编写循环短的替代命令,甚至是用通配符扩展zsh的方法,您的答案都会受到欢迎。

bash shell zsh wildcard

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

关联数组的键 ${!a[@]} 和值 ${a[@]} 是否以相同的顺序展开?

在 bash 中,关联数组(也称为字典或哈希映射)是无序的。对于关联数组,a我们可以列出带有 的所有键(也称为索引)和带有 的${!a[@]}所有值${a[@]}。我知道这些结构不会以固定的顺序展开。我想知道是否至少有一些保证。我找不到任何。然而,[ "${a[*]}" = ${a[*]} ]在任何实施中都会失败似乎是不现实的。同样,它似乎${!a[@]}以与${a[@]}. 如果我们x在位置n in找到键,${!a[@]}那么我们也会${a[x]}在位置n in找到值${a[@]}。当然,我们假设和a的扩展之间没有修改。${!a[@]}${a[@]}

例子:

declare -A a=([x]=1 [y]=2 [z]=3)
printf %s\\n "${!a[*]}" "${a[*]}"

# As output I would expect one of the following blocks ...
# (corresponding keys and values are in the same column)
x y z    x z y    y x …
Run Code Online (Sandbox Code Playgroud)

bash associative-array

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

如何删除环境变量的“SC2154”警告

在检查 shell 脚本时如何删除 shellcheck 的警告“SC2154”?

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

echo "proxy=$http_proxy" | sudo tee -a /etc/test.txt
Run Code Online (Sandbox Code Playgroud)

警告是“SC2154:引用了 http_proxy 但未分配。”

编辑:我想使用 sudo 将环境变量“http_proxy”写入 test.txt 文件。

bash shell lint shellcheck

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

处理每个数组条目的替换,没有评估

我有一个任意字符串数组,例如a=(1st "2nd string" $'3rd\nstring\n' ...).
我想将这些字符串传递给将其参数解释为文件的命令,例如paste.

对于固定数量的变量,我们可以使用流程替换

paste <(printf %s "$var1") <(printf %s "$var2") <(printf %s "$var3")
Run Code Online (Sandbox Code Playgroud)

但这只有在事先知道变量数量的情况下才有效。
对于数组a,我们可以写一些相当安全的东西,比如

eval paste $(printf '<(printf %%s %q) ' "${a[@]}")
Run Code Online (Sandbox Code Playgroud)

出于兴趣:有没有办法在a不使用的情况下处理替换每个条目eval?请记住,a的条目可以包含任何字符(除了\0因为bash不支持它)。

arrays bash process-substitution

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

无法从int转换为布尔值?

public static void main(String[] args) {
    int [] newArray= new int [4];
    int [] array = {4,5,6,7};
    oddEven(array);

    newArray[0] = array[0]+array[1]+array[2]+array[3];
    newArray[1] = array[0]*array[1]*array[2]*array[3];
}

public static void oddEven(int [] oddEven) {

    for (int i=0; i<oddEven.length; i++) {
        //  Cannot convert from int to boolean
        if (oddEven[i] % 2)

    }
}
Run Code Online (Sandbox Code Playgroud)

忽略我在这里要管理的内容.我只是好奇为什么它不接受这个for循环中的"if"语句.正如我所说,它"无法从int转换为boolean".为什么你认为这样说?

java int casting boolean

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

避免简单的if/else条件

在我的程序中,我需要检查变量是否等于1,2或3,并根据结果执行不同的方法:

if (phase.equals("1")) {
    PhaseOne.performPhase(inputParser.getSource(), inputParser.getTarget());
} else if (phase.equals("2")) {
    PhaseTwo.performPhase(inputParser.getSource(), inputParser.getTarget());
} else {
    PhaseThree.performPhase(inputParser.getSource(), inputParser.getTarget());
}
Run Code Online (Sandbox Code Playgroud)

这段代码非常简单和基本,但我真的不喜欢它.当然我可以使用切换条件,但在我看来,它会以不同的方式显示相同的基本功能.

我的问题是:有没有办法以优雅和可扩展的方式实现该功能?

仅供参考,我已经发布了这篇文章,但我没有找到适合我的问题的答案.

java

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

Imagemagick - 如何创建适合任何图像大小的注释?

我需要编写一个 bash 脚本,使用 imagemagick 注释给定的图像。问题是,该图像可以是任何大小,并且其注释在任何图像上看起来都应该几乎相同。

任何图像上的输出结果都应如下所示:

图像

所以我想弄清楚以下几点:

  1. 如何绘制一个带有文本的透明矩形,该矩形会根据图像大小调整其大小?
  2. 如何像示例中那样将该矩形放置在图像的底部?

bash imagemagick imagemagick-convert

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

命令输出在sh shell中的数组中

我试图将命令的输出放入数组,为此尝试以下操作:

#!/bin/sh

cmd=($(date +%s;sleep 5; date +%s))
start_time=$cmd[0]
end_time=$cmd[1]
echo $start_time

#EOF
Run Code Online (Sandbox Code Playgroud)

我期望echo $ start_time给我开始时间,但它会显示以下内容:

1572443382 1572443386 [0]

无法切换到bash shell,只能访问sh

linux shell sh

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