这是第一次写linux作业,在纽卡大学的日子感觉要学好不容易啊,好了,加油学习那
这一题是对文件的判断,使用判断语句对文件进行分类
#!/bin/sh
for filename in ./*
do
if [ -d "$filename" ]; then
echo "Directory: $filename /n `ls -l -t` $filename /n"
else [ -f "$filename" ];
echo "file:$filename"
fi
done
首先第一个是对所有文件这个命令的使用”./*"这个命令是代指本目录下的所有文件,第二 do…done这个语句和if…fi的互相嵌入,还有就是一个if结束后要使用使用输出语句,必须加上then。
第二种解法是基于bash的,第一个是基于shell的、、
#!/bin/bash
walk() {
local indent="${2:-0}"
for entry in "$1"/*; do
[[ -f "$entry" ]] && printf "文件: %*s%s\n" $indent '' "$entry"
[[ -d "$entry" ]] && printf "Direcotry: %*s $entry \n" $indent && walk "$entry" $((indent+4))
done
}
walk "$1"
这一个方法就是基于bash的,使用了walk命令,