node.js - 该脚本在终端中运行,但不适用于 js exec()
问题描述
echo git@github.com:hasantezcan/journey-of-2021.git | sed -e "s/:/\//g" -e "s/ssh\/\/\///g" -e "s/git@/https:\/\//g"
此代码正在终端上运行。
但是,如果我尝试使用 javascript exec()运行该脚本,则会出现这样的错误。
Error: Command failed: echo git@github.com:hasantezcan/journey-of-2021.git | sed -e "s/:///g" -e "s/ssh/////g" -e "s/git@/https:///g"
sed: -e expression #1, char 6: unknown option to `s'
at ChildProcess.exithandler (child_process.js:308:12)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1048:16)
at Socket.<anonymous> (internal/child_process.js:439:11)
at Socket.emit (events.js:315:20)
at Pipe.<anonymous> (net.js:673:12) {
killed: false,
code: 1,
signal: null,
cmd: 'echo git@github.com:hasantezcan/journey-of-2021.git | sed -e "s/:///g" -e "s/ssh/////g" -e "s/git@/https:///g"'
}
++++++stdout:
```````stderr: sed: -e expression #1, char 6: unknown option to `s'
这是代码
await exec(
`echo git@github.com:hasantezcan/journey-of-2021.git | sed -e "s/:/\//g" -e "s/ssh\/\/\///g" -e "s/git@/https:\/\//g"`,
(error, stdout, stderr) => {
console.log("linux test");
console.log("------error: ", error);
console.log("++++++stdout: ", stdout);
console.log("```````stderr: ", stderr);
}
);
我怎样才能弄清楚?
解决方案
使用此固定代码:
await exec(
String.raw`echo git@github.com:hasantezcan/journey-of-2021.git | sed -e "s/:/\//g" -e "s/ssh\/\/\///g" -e "s/git@/https:\/\//g"`,
(error, stdout, stderr) => {
console.log("linux test");
console.log("------error: ", error);
console.log("++++++stdout: ", stdout);
console.log("```````stderr: ", stderr);
}
);
推荐阅读
- android - android array adapter.notifyDataSetChanged() 正在改变项目的位置
- c# - 状态码 403 禁止无法在 wsdl webservice 上使用 postAsync 方法对多部分数据进行编码?
- rest - 使用联合安全性授权 REST API 的最佳实践是什么?
- java - Keycloak - 如何用 Java 客户端刷新令牌?
- unity3d - 直接在文本编辑器中双击打开所有类型的文件
- jquery - 为什么 Bootstrap 自动完成选择无法正常工作?
- scala - JSON4S 与 spark 2.4.0 和 EMR 5.26.0 兼容
- r - 用“NA”值替换列表栅格
- python - 在数据框上使用 .apply() 将我的列重新排序为字母顺序?奇怪的行为
- java - Head First Java书战舰游戏