我正在尝试从Node应用程序中运行以下shell命令:
git grep MySearchString -- 'MyPathToSearchFor'
此命令使用节点的child_process.exec
成功运行:
exec("git grep MySearchString -- 'MyPathToSearchFor'") // succeeds!
但是,我无法使用child_process.spawn
使该命令工作,因为它要求以字符串数组的形式提供参数。
// Spawn works without the pathspec args:
spawn('git', ['grep', 'MySearchString']) // success! exits with code 0
// It fails when the pathspec args are provided:
spawn('git', ['grep', 'MySearchString', '--', "'MyPathToSearchFor'"]) // exits with code 1
spawn('git', ['grep', 'MySearchString', "-- 'MyPathToSearchFor'"]) // exits with code 128
型
我如何提供-- MyPathToSearchFor
的参数给spawn
?我应该如何将dash-dash和pathspec参数转换成spawn参数?
这个问题似乎与args中的引号有关,但我不确定如何处理它们。
1条答案
按热度按时间6qqygrtg1#
这个问题似乎与args中的引号有关,但我不确定如何处理它们。
使用数组参数形式时不要使用引号,例如just
"'MyPathToSearchFor'"
会让git查找文件名开头和结尾都包含单引号的文件/目录(理论上可能存在,但很少有)。