我有一个文本文件(qrs.txt),其中包含目录名称(每行一个),并且在我的服务器上与脚本位于同一目录中,我有这些文件夹与文本文件中的相应名称。
这是我的脚本:
#!/bin/bash
while read p; do
if [ ! -d "$p" ];
then
echo "ERROR $p" >> log.txt
else
echo "GOOD" >> log.txt
fi
done < qrs.txt
qrs.txt:
1992300000183805
1992300001176204
1992300002145500
1992300003104507
1992300004104902
1992300005133703
1992300006117802
1992300007144501
1992300008172803
1992300009189005
1992300010146307
1992300011151700
1992300012190007
1992300013126802
1992300014111508
1992300015193908
当 if 语句在循环内时,它总是返回错误,这是不正确的,因为我可以看到文件夹存在。当我将它从循环中取出并仅检查 1 时,它工作正常......当我在错误所在的同一行回显 $p 时,我可以看到文件名它的检查确实是正确的。
我在这里想念什么..?
编辑:
十六进制模式下 qrs.txt 的屏幕截图:
解决!
我的 qrs.txt 最初是 [dos] 格式,但一旦使用 ":set ff=unix" 转换为 unix 格式,该脚本就像一个魅力!