外壳脚本:传递到数组时用引号将变量括起来?



我有一个shell脚本,其中的一部分是这样做的:

bundle exec rake parallel[${@:3}];

${@:3} 是动态的,可以是 -p thread11 THREAD=test_thread11,或者只是 @test.feature

耙子任务期待一个参数,但无论我尝试什么,我都无法让 shell 脚本用引号将变量括起来,因此而不是发送类似的东西

bundle exec rake parallel["-p thread11 THREAD=test_thread11"]

我最终发送

bundle exec rake parallel[-p thread11 THREAD=test_thread11]

这会导致耙子任务失败。

使用 echo 语句,我可以通过执行以下操作获得正确的输出

echo "Will use run command" bundle exec rake parallel["'${@:3}'"]

在将变量传递给任务时,是否可以用引号将变量的值括起来?

您似乎想改用"${*:3}",这将从 3 个参数中生成一个空格分隔的单词,而不是一系列单独的单词,每个参数一个。

相关内容

最新更新