一道练习题:
“写出一个 bash 脚本,可以使它自动读取一个文件夹(例如bash_homework/)的内容,将该文件夹下文件的名字输出到 filenames.txt, 子文件夹的名字输出到 dirname.txt 。”
示例文件下载:bash_homework.zip
以下是我写出的bash脚本readname.sh,但运行结果并不理想:
#!bin/bash
CUR_DIR=`ls ./bash_homework`
echo $CUR_DIR
for val in $CUR_DIR
do
if [ -f "$val" ];then
echo "FILE: $val"
#echo "$val" >> filenames.txt
elif [ -d "$val" ];then
echo "DIR: $val"
#echo "$val" >> dirname.txt
else
echo "unknown: $val"
fi
done
exit 0
思路:
先将该文件夹下的内容存入变量“CUR_DIR”,再通过条件语句依次判断,[ -f ]判断是否为文件;[ -d ]判断是否为目录。
运行后,并没有正确判断文件/目录:
也尝试过将ls添加参数ls -F,但只是文件夹名后多了“/”,判断依旧错误。
该如何修改才能正确运行呢?
生信调酒师