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