#!/bin/sh
Dir1=$1
Dir2=$2
if [ $# -lt 1 ]
then
echo "`find -type f | wc -l` ordinary `find -type f -executable | wc -l` executable `find -type l | wc -l` links `find -type d | wc -l` directories"
else
if [ $# -eq 1 ]
then
echo "$Dir1: `find $Dir1 -type f | wc -l` ordinary `find $Dir1 -type f -executable | wc -l` executable `find $Dir1 -type l | wc -l` links `find $Dir1 -type d | wc -l` directories"
else
fi
fi
对于这段代码,我想要做的是,如果我有一个名为find.sh的脚本,当我输入find.sh而没有任何目录时,它只会找到当前目录中的文件,如果是例如,find.sh测试目录,它会找到测试目录中的所有文件,问题是我不确定代码的第一部分是否正确,不确定它是否找到当前目录。
答案 0 :(得分:0)
你似乎没有在那里使用Dir2。
我愿意
if [ -z $1 ]
then
Dir1=$(/bin/pwd)
else
Dir1=$1
fi
用于变量检测。那么你只需要:
number=$(find $Dir1 -type f |wc -l)
echo "$Dir1 has $number files"
和您的可执行文件相同的工作。
答案 1 :(得分:0)
这是修复
#!/usr/bin/env bash
dir1=${1:-.}
dir2=${2:-.}
echo $dir1 $dir2
for dir in $dir1 $dir2
do
ordinary=$(find $dir -type f | wc -l )
executable=$(find $dir -type f -executable | wc -l)
directories=$(find $dir -type d | wc -l)
links=$(find $dir -type l | wc -l)
echo "$dir: $ordinary $executable $links $directories"
done
dir1=${1:-.}
如果$ 1存在,则将$ 1分配给dir1,否则,给出默认值.
。 .
表示当前目录。