Linux 仅在bash脚本中检查可执行文件时,是否对文件夹和可执行文件进行计数?

Linux 仅在bash脚本中检查可执行文件时,是否对文件夹和可执行文件进行计数?,linux,bash,shell,scripting,Linux,Bash,Shell,Scripting,我的代码是: 函数CountEx() { echo“此目录中的可执行文件数为:$count” } 虽然 我是这样使用它的: yaser.sh -x ./folder 输出是文件+文件夹的数量文件夹上的可执行位具有特殊意义,并且是最常设置的。尝试筛选具有可执行位的常规文件: if [[ -f "$file" -a -x "$file" ]]; 当然,整个练习可以简化为find: find $folder -maxdepth 1 -type f -executable -ls | wc -l

我的代码是:

函数CountEx()
{
echo“此目录中的可执行文件数为:$count”
}
虽然
我是这样使用它的:

 yaser.sh -x ./folder

输出是
文件+文件夹的数量

文件夹上的可执行位具有特殊意义,并且是最常设置的。尝试筛选具有可执行位的常规文件:

if [[ -f "$file" -a -x "$file" ]];
当然,整个练习可以简化为
find

find $folder -maxdepth 1 -type f -executable -ls | wc -l

可能是目录中的所有文件都设置为可执行权限。如果您只想检查elf文件,那么使用file命令和grep for elf

 file $file | grep elf > /dev/null
 if [ $? -eq. 0 ] ; then
     count = `expr $count +  1`
 fi

我说的对吗,您希望只使用shell脚本在目录中查找可执行文件?为什么不想使用
find
?在
bash
中,有几种方法可以在不使用外部程序的情况下增加值
expr
;最简洁的是
((count+=1))
。与现有代码最相似的是
count=$((count+1))
。我不认为所有版本的
find
都有
-executable
标志。您可以使用
-perm+111
作为替代方案。非常感谢您的帮助:)