将命令作为参数传递给 bash 脚本

One*_*ree 6 bash

如何将命令作为参数传递给 bash 脚本?在下面的脚本中,我试图这样做,但它不起作用!

#! /bin/sh

if [ $# -ne 2 ]
then
    echo "Usage: $0 <dir> <command to execute>"
    exit 1;
fi;

while read line
do
    $($2) $line
done < $(ls $1);

echo "All Done"
Run Code Online (Sandbox Code Playgroud)

此脚本的示例用法是

./myscript thisDir echo
Run Code Online (Sandbox Code Playgroud)

执行上面的调用应该回显thisDir目录中所有文件的名称。

Ken*_*ent 2

你可以尝试:(在你的代码中)

echo "$2 $line"|sh
Run Code Online (Sandbox Code Playgroud)

或者eval

eval "$2 $line"
Run Code Online (Sandbox Code Playgroud)