小编kfm*_*e04的帖子

没有匹配项时如何处理 bash * 匹配项?

*.txt目录中实际存在文件时,以下 bash 代码段效果很好。

for txt in *.txt
do                                               
  echo "loading data from $txt"
done   
Run Code Online (Sandbox Code Playgroud)

如果没有,文字*.txt会作为 $txt 进入循环(不好)。

如何更改此代码以便在没有*.txt文件时do ... done跳过该块?

bash globbing

10
推荐指数
2
解决办法
3999
查看次数

如何从 bash 函数返回失败值?

背景

在这篇文章中发布了以下解决方案:

function cmakerel {
    if expr match "$PWD" '*bld*' >/dev/null ; then
        cmake -D....
    else
        echo "Wrong directory!"
    fi
}
Run Code Online (Sandbox Code Playgroud)

cmakerel将调用cmake命令,如果PWDbld其名称。

但是,我通常会像这样调用这个命令: cmakerel && make check

如何修改上面的代码,使其在失败时返回一个值,从而make check不会调用第二部分?

可能返回某种非零值应该有效。

bash

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

如何使 bash 别名调用以 PWD 为条件?

我目前有这个别名:

alias cmakerel='cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ../../ && make -j4'
Run Code Online (Sandbox Code Playgroud)

本质上,它会调用 cmakeout-of-source从 PWD进行构建。它工作正常,但按原样,它几乎可以从任何地方运行(我不想要)。

我如何修改这个别名,以便当且仅当字符串bld在我当前的工作目录中时它才运行?

我需要这个改变,因为没有它,我有时会不小心从 tst 目录或其他目录调用这个命令,我只会在那里造成一团糟。

bash alias

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

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

标签 统计

bash ×3

alias ×1

globbing ×1

internet ×1

linux ×1

routing ×1