如何让我的带有1参数的shell脚本在命令行中接受默认的unix命令

时间:2012-11-06 17:33:25

标签: shell unix

我需要编写一个shell脚本来查找文件的模式,代码需要能够接受其他Unix命令作为可选参数。

例如:

mycode 644 ls -l 

应对当前目录中具有模式644的所有文件执行命令ls -l。 我只需要知道shell脚本的哪些方面可以帮助我运行ls -l

2 个答案:

答案 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 $* {} \;