0

我有一个脚本,并且正在传递一个我想在脚本中运行的命令。

像这样传递函数:

bash ./myscript.sh 'yarn test'

如果我首先将它保存为变量然后运行它,我可以运行该命令:

FUNC=$1

$FUNC

但似乎无法弄清楚如何在不先保存它的情况下运行它。

编辑:

我的示例应该更具体,我的代码更准确地看起来像:(使用 KamilCuk 的回复建议)

run_command () {
    "$@"
}

run_command

将值包含在脚本中的函数内部不会运行传递的命令,而将其放在外部"$@"将运行它。

我需要做一些不同的事情才能让它在函数中运行吗?

4

1 回答 1

1

也许你的脚本有问题,或者找不到纱线?

这是一个 [更新] 琐碎的脚本,它可以工作......

#!/bin/sh

run_command() {
    "$@"
}

run_command $@

当我运行它时,它会运行传入的参数。

# /var/tmp/myscript.sh "echo Hi"
Hi

您可以在启动时使用 -x 选项来获取调试跟踪 .. 例如

# sh -x /var/tmp/myscript.sh "echo Hi"
L-MacBook:TEST rohan$ sh -x /var/tmp/myscript.sh "echo Hi"
+ run_command echo Hi
+ echo Hi
Hi
于 2021-04-08T13:45:28.873 回答