首页 新闻 搜索 专区 学院

shell之for循环嵌套判断语句(懵~)

0
[待解决问题]


我想通过第一列判断文件类型,最后实现:
echo出“文件名xx是一个xx类型的文件!”
在我写出判断语句之后,不知道怎么改写(for 能定义多的参数吗?)

‘4’-----是我写的shell
在‘3’处我想替换成文件名该怎么实现呢?是否要用到列表?

yilv阳光的主页 yilv阳光 | 菜鸟二级 | 园豆:201
提问于:2020-12-30 12:06
< >
分享
所有回答(2)
0

你需要的这个处理是否这样可以直接输出
for file in *; do
if [ -h "$file" ]; then
echo "LINK: $file"
elif [ -L "$file" ]; then
echo "LINK: $file"
elif [ -d "$file" ]; then
echo "DIR $file"
elif [ -f "$file" ]; then
echo "FILE $file"
fi
done

https://www.baeldung.com/linux/loop-directories

2012 | 园豆:20677 (高人七级) | 2020-12-31 08:28

是的
我写的shell没有依靠参数进行判断
这样写的话似乎更加简洁易懂

支持(0) 反对(0) yilv阳光 | 园豆:201 (菜鸟二级) | 2020-12-31 10:11
0

楼主提问的方式非常赞,把问题写的明明白白的。

可以考虑一下AWK的方式处理
ll |grep -v total |awk '{a=substr($1,1,1);if(a"-"){print $9"is a file"}else if(a"d"){print $9"is a dir"}}'

Captain_Li | 园豆:136 (初学一级) | 2021-01-06 10:56

感谢您的答复
一开始我也是用awk输出的,如果放在脚本里,

我就不知道咋写了。。。

支持(0) 反对(0) yilv阳光 | 园豆:201 (菜鸟二级) | 2021-01-06 16:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册