查找未在bash的循环内搜索变量

时间:2018-09-06 17:32:57

标签: bash

我正在尝试在项目的目录中的.csv(全部在一列中)中找到文件名,以确定项目中存在哪些文件。我将这些文件的目录输出到另一个csv,但是在使用此循环时找不到返回任何内容。这些文件通常带有下划线,连字符和点号,但没有其他特殊字符或空格

#!/bin/bash
while read file; do
    echo $file
    find "/Users/myname/Documents/project/software 6.2.0.1/webclient" -name "$file" -exec echo '{}' \;
done < test.csv

echo $file运行正常,但是find无法正确搜索它或运行我的-exec命令。但是,如果将-name "$file"替换为-name "*.ext",它将正常运行。如果我只在设置了变量的终端中运行find命令,它也可以正常运行。

编辑:

示例.csv和脚本将向控制台输出相同的内容:

Organization_createLocation.uim
Organization_listLocationPopup.properties
Organization_createLocation.properties
Organization_modifyLocationView.properties
Organization_listLocationPopup.uim
Organization_modifyLocationView.vim

运行bash -x ./script.sh后,我的控制台显示为:

+ read file
+ echo $'Organization_createLocation.uim\r'
Organization_createLocation.uim
+ find '/Users/myname/Documents/project/software 6.2.0.1/webclient' -name
$'Organization_createLocation.uim\r' -exec echo '{}' ';'`

对于.csv中的每个项目

1 个答案:

答案 0 :(得分:0)

每行末尾都有回车符。 bash -x ./myscript.sh帮助我找到了回车符,dos2unix解决了我的问题。现在运行良好。