我需要编写一个接受两个或多个参数、一个文件模式、一个命令和一个可选参数列表的 Unix shell 脚本,并在具有该给定模式的所有文件上使用可选参数执行给定命令。
例如,mycode 644 ls -l
应该对当前目录中所有模式为 644 的文件执行命令 ls -l。
我使用此代码将文件权限更改为数字模式
#!/bin/sh
mode=$1
#it adds the numeric permission to the beginning of the line
ls -l |awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/) \
*2^(8-i));if(k)printf("%0o ",k);print }'
.....
shift $1
$*
但我不知道如何让代码只列出具有相同权限的文件。我怎样才能要求代码做到这一点?