【问题标题】:Bash Shell Script is not finding files using CMDER on Windows 10 but works on LinuxBash Shell 脚本无法在 Windows 10 上使用 CMDER 查找文件,但可以在 Linux 上运行
【发布时间】:2020-06-30 23:28:49
【问题描述】:

问题是,当我使用这部分脚本时,它在 linux 环境中运行良好,而在其余代码中,它返回文件列表。但是,在 Windows 10 上使用 CMDER(完整版)时,它只会返回“未找到 .txt 文件”。因此,即使我在那里有 3 个 .txt 文件,在定义的路径中也找不到 .txt 文件。我什至尝试了 MobaXterm 并得到了相同的结果。

path=$1

#files with read permission in path
count=`find $path -type f -name '*.txt' -perm /a=r`

# at least one file found
if [ "X${count}" = "X" ]
then
  echo 'no .txt files found'
  exit 1
fi

请注意,我是 shell 脚本的初学者,非常想学习,因此非常感谢任何建议!

【问题讨论】:

    标签: windows bash shell cmder mobaxterm


    【解决方案1】:

    我通过在配置文件夹内的 user_profile 末尾添加以下行来解决问题

    set "PATH=%GIT_INSTALL_ROOT%\usr\bin;%PATH%"
    

    注意:还有其他方法可以解决这个问题,这对我来说似乎是最简单的方法。

    【讨论】:

    • 我真的很困惑你的解决方案与问题有什么关系。您的脚本似乎没有使用 git。
    • 我认为它与查找命令“find $path -type f -name '*.txt'”有关。在我将该部分添加到 user_profile 之前,它没有找到 .txt 文件。正如我之前提到的,在完全设置好的 linux 环境中,它运行良好。我猜这最终只是一个简单的路径问题
    【解决方案2】:

    您确定您的脚本完全有效吗? Bash 中的等式运算符是==,而不是=

    String comparison in Bash

    【讨论】:

    • 是的,它有效。我的错是不清楚,但它是列出特定路径的 .txt 文件的脚本的一部分。它不是整个脚本,但我很确定这就是问题所在。
    猜你喜欢
    • 2018-12-12
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多