Node.js z shell问题,运行别名并获取此;zsh:`}'附近的分析错误&引用;

Node.js z shell问题,运行别名并获取此;zsh:`}'附近的分析错误&引用;,node.js,ubuntu,command-line,alias,zsh,Node.js,Ubuntu,Command Line,Alias,Zsh,我正在尝试在zshell(5.5.1)中创建一个别名,它将node.js服务器代码写入文件app.js。当我运行别名时,我得到了这个 “zsh:“}”附近的分析错误” 我试着避开那个花括号,但没用。我找了又找,但找不到任何东西来澄清我做错了什么 alias srvr='echo const express = require("express"); const app = express(); app.use(express.static("public")); app.use(express

我正在尝试在
zshell(5.5.1)
中创建一个别名,它将
node.js
服务器代码写入文件
app.js
。当我运行别名时,我得到了这个

“zsh:“}”附近的分析错误”

我试着避开那个花括号,但没用。我找了又找,但找不到任何东西来澄清我做错了什么

alias srvr='echo const express = require("express");
const app = express();

app.use(express.static("public"));
app.use(express.static("vendors"));

 app.get("/", function (req, res) {
   res.sendFile(__dirname + "/index.html");
 });

 app.listen(3000, function () {
   console.log("Example app listening on port 3000!");
 });' > app.js

不带引号的分号后面的内容不会被视为
echo
的参数。无论如何,您不应该为此使用别名。改用函数

srvr () {
    echo 'const express = require("express");
const app = express();

app.use(express.static("public"));
app.use(express.static("vendors"));

 app.get("/", function (req, res) {
   res.sendFile(__dirname + "/index.html");
 });

 app.listen(3000, function () {
   console.log("Example app listening on port 3000!");
 });' > app.js
}

长得吓人的单引号字符串仍然很难读取,并且有点容易出错(很容易在带有单引号的内容中意外编辑)。也许可以使用here文档来代替?