如何在循环中使用文件输出 Linux
how to use a file output in a loop Linux
我有一个包含很多 jar 名称的文件
jars.txt 包含例如
axiom-api-1.2.13.jar
axiom-dom-1.2.13.jar
axiom-impl-1.2.13.jar
axis2-adb-1.6.2.jar
axis2-adb-codegen-1.6.2.jar
axis2-ant-plugin-1.6.2.jar
axis2-clustering-1.6.2.jar
我想找到他们的位置并删除他们
我尝试使用以下脚本
#!/bin/ksh
file="/path/to/file/jars.txt"
while IFS= read -r line
do
echo "$line"
for i in $(find $BASE_DIR/root/ -name "$line"); do
echo "delete $i"
rm "$i"
done
done <"$file"
第 echo "$line"
行正确打印文件名,但在 for 循环中,结果为空
如果我使用 find $BASE_DIR/root/ -name "axiom-api-1.2.13.jar"
它就可以找到所有文件
所以我在这里错过了什么?
为什么 for 循环不能将 $line 作为参数?
文件 jars.txt 在 windows 上创建,当我在 Linux 上使用它时它有格式错误
解决方案是在 Linux 中创建一个新文件并复制数据
我有一个包含很多 jar 名称的文件
jars.txt 包含例如
axiom-api-1.2.13.jar
axiom-dom-1.2.13.jar
axiom-impl-1.2.13.jar
axis2-adb-1.6.2.jar
axis2-adb-codegen-1.6.2.jar
axis2-ant-plugin-1.6.2.jar
axis2-clustering-1.6.2.jar
我想找到他们的位置并删除他们 我尝试使用以下脚本
#!/bin/ksh
file="/path/to/file/jars.txt"
while IFS= read -r line
do
echo "$line"
for i in $(find $BASE_DIR/root/ -name "$line"); do
echo "delete $i"
rm "$i"
done
done <"$file"
第 echo "$line"
行正确打印文件名,但在 for 循环中,结果为空
如果我使用 find $BASE_DIR/root/ -name "axiom-api-1.2.13.jar"
它就可以找到所有文件
所以我在这里错过了什么? 为什么 for 循环不能将 $line 作为参数?
文件 jars.txt 在 windows 上创建,当我在 Linux 上使用它时它有格式错误 解决方案是在 Linux 中创建一个新文件并复制数据