我有一个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 个参数中生成一个空格分隔的单词,而不是一系列单独的单词,每个参数一个。