创建名为 dirstat 的脚本。我应该做的是找到是否是 文件,目录或其他东西。例如,要显示此消息:
file1 is file.
Desktop is directory.
Public is something else.
dirstat is file.
我不知道我做了什么是错的或是对的。我应该写些什么以及在哪里?
$vi dirstat
#!/bin/sh
for i in *; do
if [ -f file1]
echo -n "file1 is file"
elif [ -d desktop)
echo -n "desktop is directory"
elif [ -p public ]
echo -n "Public is something else"
fi
done
答案 0 :(得分:0)
未经测试,但与您所拥有的相似:
#!/bin/sh
file_type() {
if [ -f "$1" ]; then
echo "file"
elif [ -d "$1" ]; then
echo "directory"
else
echo "something else"
fi
}
for i in *; do
printf "%s is %s\n" "$i" "$(file_type "$i")"
done
这将显示当前目录中的所有非点文件。或者,使用for i
(不带in *
)来显示命令行参数中列出的所有文件。