我有一个 grunt-shell 命令,它使用大括号扩展 cp 图像文件。
file: Gruntfile.js
cpImgTmp: {
command: 'cp ./app/images/{*.png,*.jpg,*.ico} tmp/images'
}
当我在 MacOS 上运行这个 grunt-shell 命令时,它会执行预期的操作,但会在 ubuntu 上返回“cannot cp ...”错误。
我搜索了 grunt-shell lib,发现它使用了 exec 函数。我在受控环境中再次测试了该命令
exec('cp ./app/images/{*.png,*.jpg,*.ico} tmp/images')
并且经过验证的 exec 函数的 spawn args 是相同的:
['/bin/sh', '-c', 'cp ./app/images/{*.png,*.jpg,*.ico} tmp/images']
我在 ubuntu 服务器终端中成功执行了命令。所以我的问题是 nodejs 在不同环境中处理大括号扩展的问题,我可以将哪些选项传递给 nodejs 以使该命令跨 unix 操作系统工作?