我正在尝试使用exec()
函数从节点执行基本bash脚本。 bash脚本如下:
#!/bin/bash
ffmpeg -f concat -i <(for f in $1/*.mov ; do echo "file '$f'"; done) -c copy $1/output.mov
该脚本可以在命令行中正常运行,但从节点内运行时出现语法错误:line 2: syntax error near unexpected token
('`
在运行此命令节点时,它会尝试使用sh
而不是bash
。任何人都可以验证这是真的,并提供可能的解决方法或解决方案吗?提前谢谢!
答案 0 :(得分:3)
尝试child_process.execFile或只是明确地运行['/bin/bash', '/path/to/your/script.sh', arg1, arg2...]
。
答案 1 :(得分:2)
如果您使用的是最新版本的Node,则可以为exec添加以下选项:
{shell: "/bin/bash"}
请参阅:https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback