小编典典

Bash-检查文件路径中的字符串

jenkins

如何在bash中的文件路径中检查字符串?我在尝试:

if [[$(echo "${filePathVar}" | sed 's#//#:#g#') == *"File.java"* ]]

用路径中的冒号(:)替换所有正斜杠。没用 Bash将文件路径字符串视为文件路径,并引发错误“无此类文件或目录”。目的是将文件路径视为字符串。

例如:filePathVar可能是

** / myloc / src / File.java

在这种情况下,检查应返回true。

请注意,作为构建步骤,我正在Jenkins作业中编写此脚本。

Updates as of 12/15/15

以下返回Not found,这是错误的。

#!/bin/bash
sources="**/src/TESTS/A.java **/src/TESTS/B.java"

if [[ "${sources}" = ~B.java[^/]*$ ]];
then
echo "Found!!"
else
echo "Not Found!!"
fi

以下返回Found也同样错误的结果(删除了比较器周围的空间=)。

#!/bin/bash
sources="**/src/TESTS/A.java **/src/TESTS/C.java"

if [[ "${sources}"=~B.java[^/]*$ ]];
then
echo "Found!!"
else
echo "Not Found!!"
fi

比较操作显然不起作用。


阅读 270

收藏
2020-07-25

共1个答案

小编典典

它的工作方式如下所示:

#!/bin/bash
sources="**/src/TESTS/A.java **/src/TESTS/B.java"
if [[ $sources == *"A.java"* ]]
then
echo "Found!!"
else
echo "Not Found!!"
fi
2020-07-25