我正在尝试通过节点脚本执行多个终端命令
我有一个像smaple.sh这样的shell脚本,它工作正常
cd ~/Desktop
find -type f -printf '%T+\t%p\n' | sort -n
尝试在节点脚本中执行上述终端命令
var command = ' cd ~/Desktop'
command +=' find -type f -printf %T+\\t%p\\n | sort -n'
exec(command, function (error, stdout, stderr) {
});
执行上面的代码时什么都没得到。 首先我需要更改目录然后执行第二个命令
find -type f -printf %T+\\t%p\\n | sort -n
答案 0 :(得分:1)
使用当前代码,node.js正在尝试执行以下操作:
cd ~/Desktop find -type f -printf %T+\\t%p\\n | sort -n
如果您尝试在节点外运行,您将获得相同的结果。
您需要使用&&
或;
来排除命令,如下所示:
var command = ' cd ~/Desktop &&'
command +=' find -type f -printf %T+\\t%p\\n | sort -n'
exec(command, function (error, stdout, stderr) {
});
一种更优雅的方法:
var commands = [];
commands.push('cd ~/Desktop');
commands.push('find -type f -printf %T+\\t%p\\n | sort -n');
var command = commands.join(' && ');
exec(command, function (error, stdout, stderr) {
});