我使用OS Process Sampler执行以下shell命令
cat ${myDataFile} | myProcessor.sh --param1 valueParam1 --param2 valueParam2
command: cat
Standard Input(stdin): ${myDataFile}
working directory: ${myHome}
command Parameters: | myProcessor.sh --param1 valueParam1 --param2 valueParam2
响应
cat: | myProcessor.sh --param1 valueParam1 --param2 valueParam2: No such file or directory
显然,“cat”正在将命令参数作为文件绑定。
如何克服这个问题。这是在AWS EC2环境中运行的
答案 0 :(得分:1)
如果您使用的是管道|
,则需要在shell中启动命令:
bash -c "cat ${myDataFile} | myProcessor.sh --param1 valueParam1 --param2 valueParam2"
当${myDataFile}
扩展时,您的问题会保持打开状态。我以为它会被jmeter扩展。如果它应该在运行时扩展,则需要使用单引号:
bash -c 'cat ${myDataFile} | myProcessor.sh --param1 valueParam1 --param2 valueParam2'
答案 1 :(得分:0)
${myDataFile}
作为命令参数传递,它不应该模拟STDIN。有关详细说明,请参阅How to Run External Commands and Programs Locally and Remotely from JMeter文章。 echo $SHELL
命令并阅读shell上的man
条目以了解如何执行此操作。