首页 > 解决方案 > Cygwin Bash 脚本没有抛出任何错误,但也没有工作

问题描述

我正在整理一个简单的脚本来重命名具有特定命名约定的文件并将其复制到文件夹中。我将脚本全部启动并在我编写它的 linux 机器上运行,但是一旦我切换到我需要运行它的 Windows 10 计算机,它就停止了工作。

我试图从 Cygwin 运行它,每当我运行它时,Cygwin 都没有显示任何错误或任何东西,但没有任何反应。真的不知道接下来要去哪里...

代码如下:

#!/bin/bash

for file in /cygdrive/c/path/to/files/*;
do
if [[ $file = *"Search_Criteria"* ]]; then
mv "$file" "$(echo "$file" | sed -r 's/KDM_//')";
fi
done
for file in /cygdrive/c/path/to/files/*;
do
if [[ $file = *"Search_Criteria"* ]]; then
cp "$file" "/cygdrive/c/File/Destination";
fi
done

任何有关如何在 Cygwin 方面启动和运行的建议将不胜感激!

标签: bashcygwin

解决方案


编写的测试无效,因为扩展在那里不起作用。您可以检查子字符串或只是将测试移动为

#!/bin/bash

for file in /cygdrive/c/path/to/files/*"Search_Criteria"* ;
do
    mv "$file" "$(echo "$file" | sed -r 's/KDM_//')";
fi
done
for file in /cygdrive/c/path/to/files/*"Search_Criteria"* ;
do
    cp "$file" "/cygdrive/c/File/Destination";
fi
done

推荐阅读