如何在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,这是错误的。
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也同样错误的结果(删除了比较器周围的空间=)。
Found
=
#!/bin/bash sources="**/src/TESTS/A.java **/src/TESTS/C.java" if [[ "${sources}"=~B.java[^/]*$ ]]; then echo "Found!!" else echo "Not Found!!" fi
比较操作显然不起作用。
它的工作方式如下所示:
#!/bin/bash sources="**/src/TESTS/A.java **/src/TESTS/B.java" if [[ $sources == *"A.java"* ]] then echo "Found!!" else echo "Not Found!!" fi