我需要编写一个 shell 脚本来查找文件的模式,并且代码需要能够接受其他 Unix 命令作为可选参数。
例如:
mycode 644 ls -l
应该对当前目录中模式为 644 的所有文件执行命令 ls -l。我只需要知道 shell 脚本的哪些方面帮助我在这里运行ls -l
.
我认为对你来说最好的方法是使用 find。
因此,例如您正在寻找的操作可以通过这个简单的命令执行:
find . -perm 0644 -exec ls -l {} \;
您的脚本可能如下所示:
#!/bin/sh
perm=$1
shift
find . -perm $perm $* {} \;
以下将做到这一点:
#!/bin/bash
mode=$1
shift
$*
它将第一个参数删除到变量中,并将其余参数作为单个 shell 命令执行。它不会尝试处理mode
,但您表示您的问题与此无关。