在bash脚本中查找命令不工作



我有一个bash,它读取一个文件夹名称列表作为输入(全部是数字而不是字母),并试图找到每个文件夹的位置。Find命令根本没有返回任何东西给我。我不知道为什么。然而,如果我输入原始值而不使用变量,它就会工作。

代码:

#!/bin/bash
filename='bat.txt'
n=1
while read line;
do
lien=$(find ./ -type d -name "$line")
# for read each line
echo "line no. $n : $line"
n=$((n+1))
done < $filename

Bat.txt示例:

19223
12233
34434
34434

根据通过注释提供的额外信息,解决方案应该是纠正脚本中的错别字:

#!/bin/bash
filename='bat.txt'
n=1
while read line;
do
line=$(find ./ -type d -name "$line")
# for read each line
echo "line no. $n : $line"
n=$((n+1))
done < $filename

和将bat.txt的行尾从Windows/DOS转换为Linux/Unix:

sed -i 's/r$//' bat.txt 

关于这个问题的更多信息可以在这里找到,执行转换的各种替代方法可以在这里找到。

最新更新