我正在尝试使用shell脚本分析目录中的文件/目录,例如,如果文件是可读的,如果它是一个文件,如果它是一个目录,等等。我的脚本设置为接受一个目录作为输入。所以我会输入'file.sh目录名‘。但是,当我创建一个for循环来分析文件时,它会分析我当前工作目录中的文件,而不是指定的目录名称。
这是我的坏代码:
file=$1
set mypath = $file
for file in $mypath *
do
if [ -d $file ]
dirCount=`expr $dirCount + 1`
fi
done为什么读取的是工作目录而不是指定的目录?任何帮助都是非常感谢的。谢谢
发布于 2010-04-24 08:08:14
我认为你在这里有一个错误:
set mypath = $file只管去做
mypath = $file这应该会很好地解决问题。
发布于 2012-07-18 19:36:33
# 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发布于 2013-06-11 15:15:02
你可以试试这个。但是当文件夹名中有空格时,脚本就会出问题。
#/bin/bash
path=$1
for file in $path/*
do
if [ -d $file ];then
dirCount=`expr $dirCount + 1`
fi
done
echo $dirCounthttps://stackoverflow.com/questions/2702629
复制相似问题