1

我正在尝试编写一个 sh 脚本来检查文件中存储的文件扩展名列表中的所有文件是否位于特定目录中的某个位置。我正在做以下事情:

文件名看起来像 yyyymmdd.ext

hoff_list.lst 示例如下:

abc
dfg
hij
klm
xxx
...

我的脚本是:

#!/bin/ksh
PATH=$PATH:/usr/bin
_input="/exchange/hoff_list.lst"
hoffdate="20130328"
hsourcedir="/upload_data/"
while IFS=' \t\n' read -r line; do
echo "=$line=" #first problem there
hoff_name=$hsourcedir$hoffdate"."$line
  if test ! "$hoff_name"
     then echo "$hoff_name DOES exist"
     else echo "$hoff_name does NOT exist or is empty"
  fi
done < "$_input"

但它不会回复相关回复。如果文件 reqly 存在于 dir 中,它不会找到文件。回声“=$line=”

退伍军人

=abc
=dfg
...

在预期的时候

=abc=
=dfg=
...

看起来问题在那里,但不知道如何处理它。将感谢您的帮助...

4

1 回答 1

1

该文件/exchange/hoff_list.lst具有 CRLF 行结尾http://en.wikipedia.org/wiki/Newline

摆脱 CR。您可以尝试使用dos2unix大多数 Linux 系统上可用的实用程序或参考http://en.wikipedia.org/wiki/Newline#Conversion_utilities

于 2013-04-08T13:28:27.153 回答