首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在读取目录,unix shell脚本

问正在读取目录,unix shell脚本
EN

Stack Overflow用户
提问于 2010-04-24 07:56:35
回答 3查看 2.1K关注 0票数 1

我正在尝试使用shell脚本分析目录中的文件/目录,例如,如果文件是可读的,如果它是一个文件,如果它是一个目录,等等。我的脚本设置为接受一个目录作为输入。所以我会输入'file.sh目录名‘。但是,当我创建一个for循环来分析文件时,它会分析我当前工作目录中的文件,而不是指定的目录名称。

这是我的坏代码:

代码语言:javascript
复制
file=$1
set mypath = $file
for file in $mypath *
do

if [ -d $file ]
  dirCount=`expr $dirCount + 1`
fi

done

为什么读取的是工作目录而不是指定的目录?任何帮助都是非常感谢的。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-24 08:08:14

我认为你在这里有一个错误:

代码语言:javascript
复制
set mypath = $file

只管去做

代码语言:javascript
复制
mypath = $file

这应该会很好地解决问题。

票数 1
EN

Stack Overflow用户

发布于 2012-07-18 19:36:33

代码语言:javascript
复制
# check this one     
file=$1
mypath=$file
dirCount=0
#ls $file
for file in `ls $mypath`
do
file=./$mypath/$file
#a=`ls -l $file`
echo $a
if [ -d $file ]
then
  dirCount=`expr $dirCount + 1` #increment count
        echo $dirCount
fi
done

#if count value is grater than 1 then only print value
if [ $dirCount -ne 0 ]
then
echo -e "\ncount is $dirCount    $$"
fi
票数 1
EN

Stack Overflow用户

发布于 2013-06-11 15:15:02

你可以试试这个。但是当文件夹名中有空格时,脚本就会出问题。

代码语言:javascript
复制
#/bin/bash
path=$1
for file in $path/*
do
if [ -d $file ];then
  dirCount=`expr $dirCount + 1`
fi
done
echo $dirCount
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2702629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档