小编Leo*_*mon的帖子

bash 结合通配符扩展和大括号扩展

我正在尝试扩展包含通配符和大括号内指定的扩展集合的字符串。如下例所示,似乎没有任何效果。变量firstList扩大罚款,但没有secondListthirdList还是fourthList扩展正确。我也尝试过各种版本,eval但都没有奏效。任何帮助,将不胜感激

#!/bin/bash
touch a.ext1
touch b.ext1
firstList='*.ext1'
ls  $firstList
touch a.ext2
touch b.ext2
secondList='*.{ext1,ext2}'
ls $secondList 
ls '$secondList'
ls "$secondList"
thirdList=*.{ext1,ext2}
ls $thirdList  
ls '$thirdList'
ls "$thirdList"
fourthList="*.{ext1,ext2}"
ls $fourthList
ls '$fourthList'
ls "$fourthList"
Run Code Online (Sandbox Code Playgroud)

bash brace-expansion

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

用 Pinta 画直线

我正在尝试将一条直线叠加到 .png 图像上。众所周知, GIMP无法用于简单的事情,因此人们建议使用Pinta

然而,据我所知,您可以用该程序绘制的唯一线条是自由形式的线条,即,似乎没有类似标尺工具的东西。我怎样才能画一条直线?

或者有其他程序可以做到这一点吗?同样,我需要对现有的 .png 文件进行叠加,因此Xfig将无法工作。

png xfig pinta

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

带有选项的 bash 脚本标记不一致的行为

下面的代码是基于mwe我编写的脚本的 mwe,我在其中以我认为通常的方式指定标志。但我看到了非常奇怪的行为。如果我输入mwe -emwe -n它认为没有参数并返回no arg。如果我输入mwe -kmwe -i它认为argType不是"-"并返回breaking. 如果我注释掉以 a 结尾的四行#代码将按预期工作。这表明问题是由while循环引起的。有人可以解释一下发生了什么吗?

#!/bin/bash
foo=0
argType=`echo "$1" | cut -c 1`
while [ 1 -gt 0 ] ;   #
    do   #
        if [ $# -eq 0 ] ; then
            echo no arg
            exit
        elif [ "$argType" != "-" ] ; then
            #No more flags
            echo breaking
            break  #
        elif [ "$1" …
Run Code Online (Sandbox Code Playgroud)

bash for

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

在 bash 中,grep 以 \ 开头的行,并使用反引号分配结果

在 bash 中,我试图为以 \ 开头的行grep 文件,并使用反引号返回结果。

例如:

echo \\Hello > myFile
out=`cat myFile | grep '^\\Hello'`
echo $out
Run Code Online (Sandbox Code Playgroud)

什么都不返回,即使

cat myFile | grep '^\\Hello'
Run Code Online (Sandbox Code Playgroud)

返回,如预期的那样。

\Hello
Run Code Online (Sandbox Code Playgroud)

这看起来非常奇怪的外壳行为。特别是,tcsh 中的 anologous 命令序列做了人们所期望的:

set out=`cat myFile | grep '^\\Hello'`; echo $out
Run Code Online (Sandbox Code Playgroud)

返回

\Hello
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这是怎么回事吗?谢谢

shell grep bash quoting command-substitution

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

简单的 bash while 循环创建了一个名为 0 的不需要的文件

出于某种莫名其妙的原因,当我运行以下代码(显然是最小化)时,会创建一个名为“0”的文件。有人可以解释为什么会发生这种情况,以及如何避免它?非常感谢

#!/bin/bash
while [ 1 > 0 ] 
    do
        exit
    done
Run Code Online (Sandbox Code Playgroud)

bash

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

标签 统计

bash ×4

brace-expansion ×1

command-substitution ×1

for ×1

grep ×1

pinta ×1

png ×1

quoting ×1

shell ×1

xfig ×1