如何检查bash中文件路径中的字符串?我想:Bash - 检查文件路径中的字符串
if [[$(echo "${filePathVar}" | sed 's#//#:#g#') == *"File.java"* ]]
更换所有期待与冒号(:)路径斜杠。它不工作。 Bash将文件路径字符串视为文件路径,并引发错误“No such file or directory”。目的是让它将文件路径看作一个字符串。
实施例: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
比较操作显然不起作用。
替换所有斜杠与结肠癌:'$ {// filePathVar \ //}'。但你为什么要这么做? – 4ae1e1
'#s#//#:#g#''有双斜杠... – Jahid
请看更新的问题。 – naspras