强制node.js使用bin / bash而不是sh
我试图执行一个基本的bash脚本从节点使用exec()
函数。 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
。 任何人都可以validation这是真实的,并给出一个可能的解决方法或解决scheme? 谢谢提前!
试试child_process.execFile或者直接运行['/bin/bash', '/path/to/your/script.sh', arg1, arg2...]
your ['/bin/bash', '/path/to/your/script.sh', arg1, arg2...]
script.sh ['/bin/bash', '/path/to/your/script.sh', arg1, arg2...]
。
如果您使用的是最新版本的Node,则可以将以下选项添加为exec:
{shell: "/bin/bash"}
请参阅: https : //nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback