首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux: Shell脚本中的命令输出捕获与错误处理探讨

在Shell脚本编程中,处理命令的输出和错误信息是一个常见的需求。通过将命令的输出赋值给变量,并使用条件语句处理命令的返回状态,我们可以实现更为健壮和灵活的脚本。...在本文中,我们将详细探讨如何封装一个通用的执行命令函数,以便捕获命令输出和错误。 1. 基本的命令输出捕获 在Shell脚本中,可以使用反引号(``)或$()来捕获命令的输出。...,并在函数内部捕获命令的输出和错误信息。...此外,它能够清晰地输出命令的执行结果和详细信息。 结论 通过封装执行命令的函数,我们可以提高Shell脚本的健壮性和可维护性。...无论是捕获命令的输出和错误信息,还是根据命令的返回状态执行不同的操作,这种方法都能为我们的脚本提供更强的灵活性和可控性。

52510
您找到你想要的搜索结果了吗?
是的
没有找到

你要知道的 Npm Script 都在这里

例如,下面所有的命令的效果都是一样的: npm run-script test npm run test npm test npm t 同理, npm start 也是一样 npm run-script...start npm run start npm start 执行多个脚本 我们可能想结合一些脚本并一起运行它们。...当脚本以非 0 退出码结束时,这意味着在运行脚本的时候发生了错误,并终止了执行。.../Users/beidan/.npm/_logs/2021-02-19T06_48_18_141Z-debug.log 静默消息 如果想减少错误日志并非防止脚本抛出错误, 可以使用下面的命令来“静默”...处理, (比如在 ci 中,即使测试命令失败,也希望整个管道继续运行,就可以使用这个命令npm run --silent // 或者 npm run -s 如果脚本名不存在时不想报错

1.2K20

package.json 详解

package.json 文件使 npm 可以启动你的项目、运行脚本、安装依赖项、发布到 NPM 注册表以及许多其他有用的任务。...scripts 属性接受一个对象,它的值为可以通过 npm run 运行的脚本,其键为实际运行的命令。这些通常是终端命令,我们把它们放入 scripts 字段,可以既可以记录它们又可以轻松地重用。...devDependencies 属性的另一种用途是在我们的 npm 脚本中使用它们。...这意味着任何缺少的逗号、丢失的引号或其他格式错误都将阻止 npm 与 package.json 进行交互。如果确实引入了错误,则下次运行 npm 命令时将会看到错误提示。...你当然可以在文本编辑器中手动编辑 package.json 并进行更改,只要你注意不要引入任何 JSON 格式错误,这对大多数字段都适用。但是我建议你尽可能使用 npm CLI 命令

2.3K20

Vue + Node.js 从 0 到 1 实现自动化部署工具

目录结构 ├── bin # 命令行工具命令 │ ├── start.js # zuodeploy start 执行入口 │ └── zuodeploy.js # zuodeploy 命令入口,...包名、版本号、cli 命令名称、 ├── publish.sh # npm publish(npm包) 发布脚本 └── README.md # 使用文档 复制代码 前后端技术栈、相关依赖 前端/客户端...功能优化 1.使用 socket 实时输出 log 上面的例子中,普通接口需要等部署脚本执行完成后再响应给前端,如果脚本中包含 git pull、npm run build 等耗时较长的命令,就会导致前端页面一直没...主要是简单易用,如果不使用命令行工具形式,需要三步: 先下载代码到服务器 npm install node index.js 或者 pm2 start index.js -n xxx 开启服务 改成 npm...包命令行工具形式只需要下面两步,而且更节省时间 npm install zuo-deploy pm2 -g 运行 zuodeploy start 会自动使用 pm2 开启服务 下面先来看一个简单的例子

1.6K20

分享一个 Vue + Node.js 从 0 到 1 实现自动化部署的工具

目录结构 ├── bin # 命令行工具命令 │ ├── start.js # zuodeploy start 执行入口 │ └── zuodeploy.js # zuodeploy 命令入口,...包名、版本号、cli 命令名称、 ├── publish.sh # npm publish(npm包) 发布脚本 └── README.md # 使用文档 复制代码 前后端技术栈、相关依赖 前端/客户端...功能优化 1.使用 socket 实时输出 log 上面的例子中,普通接口需要等部署脚本执行完成后再响应给前端,如果脚本中包含 git pull、npm run build 等耗时较长的命令,就会导致前端页面一直没...主要是简单易用,如果不使用命令行工具形式,需要三步: 先下载代码到服务器 npm install node index.js 或者 pm2 start index.js -n xxx 开启服务 改成 npm...包命令行工具形式只需要下面两步,而且更节省时间 npm install zuo-deploy pm2 -g 运行 zuodeploy start 会自动使用 pm2 开启服务 下面先来看一个简单的例子

2.2K10

electron 打包项目

使用 electron-forge 将 Electron Forge 添加到您应用的开发依赖中,并使用其"import"命令设置 Forge 的脚手架: npm install --save-dev @...electron-forge/cli # 如果缺少某些工具,根据提示安装完,重新执行即可 # 如果需要下载东西,安装时间可能比较长 npx electron-forge import 上面的配置完毕后,...会自动在我们的 package.json 中增加一些脚本配置: "scripts": { "test": "echo \"Error: no test specified\" && exit 1",...+ "start": "electron-forge start", + "package": "electron-forge package", + "make": "electron-forge...make" }, 使用 Forge 的 make 命令来创建可分发的应用程序: npm run make Electron-forge 会创建 out 文件夹,您的软件包将在那里找到: // Example

24210

了解可执行的NPM

/node_modules/ > npm rebuild 因为绕过了NPM的安装步骤,一定要记得npm rebuild来让NPM知道我们的包注册了bin 这时候我们修改脚本文件,在脚本中添加当前执行目录的输出...为了使用方便,很可能会将预定的一个启动命令放到npm scripts中去,类似这样的: { "script": { "start": "nodemon ..../server.js" } } 两者混用会带来的问题 这样的项目在你本地使用是完全没有问题的,但是如果有其他的同事需要运行你的这个项目,在第一步执行npm start时就会出异常,因为他本地可能并没有安装...# 在这里执行脚本 以及一个相反的栗子?...在webpack中,如果模块不存在,并不会给你报错,而是默认按照JS的方式进行解析,所以可能会遇到提示语法错误,这时候不用想了,一定是缺少依赖 也可以说npx是个好东西,尽量使用npx的方式来调用,能少踩一些

1.3K10

Jenkins 远程启动nodejs失败,使用pm2守护Nodejs

一、概述 使用Jenkins 远程ssh到linux,使用命令: ssh root@192.168.10.1 'cd /data/test;nohup npm start &' 发现linux服务器的node...但是本地执行命令: cd /data/test;nohup npm start &  是可以启动的。 大致意思是,如果远程执行的命令,不是守护进程。...安装 npm install pm2 -g 启动 pm2 start app.js pm2 start app.js --name my-api #my-api为PM2进程名称 pm2 start app.js.../client && npm start", 由于package.json里面有定义一些关联启动命令,因此直接用pm2启动4个app.js,会导致应用异常。...json格式 pm2 start npm -- start这条命令是pm2的万能命令,pm2 start ,就是这一系列命令中的最豪华命令。这个json我们可以理解为一个任务参数描述文件。

2.5K20

使用Nexus搭建Maven私有仓库(私服)

包括我们常见的Yum、Docker、npm、NuGel等等。 专业版需要付费,个人用免费版就可以,专业版更加强大。...; 进入到本地maven仓库下; 新创建一个sh脚本(这个脚本是从网上找的,但是已经不记得从哪找的了) #!...手动上传: 当我们maven库已经形成规模,并且仅仅缺少一两个依赖的时候,我们就通过手动上传的方式添加依赖。 点击上传,点击需要上传到的仓库,然后选择文件。...其他命令 Windows: 在nexus-2.7.0-06/bin/jsw/windows-x86-64中还有其他的一些脚本 install-nexus.bat:将Nexus安装成Windows服务;...除console之外,Nexus的Linux脚本还提供如下的命令: ./nexus start:启动后台Neuxs服务; ./nexus stop:停止后台Neuxs服务; .

1.4K10

uni-app命令行构建Module parse failed:Unexpected token错误处理

# 背景 最近在使用公司内jenkins部署uni-app项目时又遇到了如下的错误: Error: Error: Missing binding /data/apps/nginx/web/jnpf-app...所以这里按部就班就可以了,但是接下来却又报出了如文章标题所示的错误: ?...经过一番调查之后,发现是项目内含有可选链操作符这种新特性,但是缺少库来进行转译操作导致js编译失败,jenkins部署流程没有成功。...配置文件,在presets中增加插件设置: ["@babel/preset-env", { "modules": false }] 执行打包命令即可: 修改后的部署结果: npm run build:h5...,这就意味着如果以后如果切换了node版本依然还是会有这个问题的,所以可以考虑在构建脚本中适当增加npm rebuild node-sass命令来处理 js代码转译问题,如果代码使用到了一些js新特性就需要相应借助

2.7K30

node+express构建后端项目

install run the app: $ DEBUG=typroject:* npm start 以上为创建项目生成的,默认再运行以下三个命令,运行起第一个node项目 cd typroject...npm install npm start 项目启动后,在浏览器就可以访问了localhost:3000,访问成功会出现以下页面 每次修改代码后需要重新启动 Express 应用,为了解决该问题,可以安装...nodemon,修改代码后自动重启项目,全局安装命令 npm i -g nodemon 安装完成后在package.json中添加如下脚本 "scripts": { "start": "node.../bin/www" }, 完成后启动项目命令npm start 变成 npm run server npm run server 使用该命令再次重启项目,完成 部署到nginx node安装 node...注意 node 程序运行中不能碰到错误,否则就会挂掉。所以forever诞生了,forever可以守卫node进程,node挂了后会自动重启。

1.3K30

npm】伙计,给我来一杯package.json!不加糖

一个让我们可能有些困扰的问题是,通过script字段内的npm命令运行脚本时,有时候要加“run”,有时候又不要加"run",即有时候是可以直接用npm ;而有时候又要用npm run...首先要提一下的是,run的原名是run-script,是一段脚本,而run是它的一个别名(alias) 1.当run[-script]被 test, start, restart, and stop这四个自带的命令所使用时...,它可以被省略(或者说不需要加“run”就可以直接调用),所以我们平时最常输入的npm start实际上相当于npm run start,只不过是为了方便省略了run而已 原文:run[-script]...npm run build去运行了  npm为script字段中的脚本路径都加上了node_moudles/.bin前缀 npm为script字段中的脚本路径都加上了node_moudles/.bin前缀...本来运行这个脚本命令应该是:node_modules/.bin webpack 但由于npm已经自动帮我们加了node_modules/.bin前缀了,所以我们可以直接写成: "scripts": {

96160

使用 Typescript 开发 Nodejs 命令行工具

初始化工程 建立命令行工具,需要先创建一个 npm 包。下文将使用 npm 工具来完成包的初始化和依赖的安装。...创建运行脚本 每次编译都需要引用 node_modules 里面的 tsc 命令,有些繁琐,有三种方法可以解决: 全局安装 typescript 包: npm i typescript -g 就可以直接使用...使用 npx 执行 npx 是 npm 提供的命令,其会自动下载对应的包并执行. npx tsc 创建 npm 脚本 在 package.json 中的 script 中增加一行脚本: "script"...: {+ "build": "tsc"} 这里我们采用第3种方法,写入脚本后可以执行: npm run build 也会成功进行编译。...中的 script 中增加 start 命令: { "script": {+ "start": "tsc --watch" }} 在当前目录下运行命令npm start 然后对

1.8K11

使用 Typescript 开发 Nodejs 命令行工具

初始化工程 建立命令行工具,需要先创建一个 npm 包。下文将使用 npm 工具来完成包的初始化和依赖的安装。...创建运行脚本 每次编译都需要引用 node_modules 里面的 tsc 命令,有些繁琐,有三种方法可以解决: 全局安装 typescript 包: npm i typescript -g 就可以直接使用...使用 npx 执行 npx 是 npm 提供的命令,其会自动下载对应的包并执行. npx tsc 创建 npm 脚本 在 package.json 中的 script 中增加一行脚本: "script"...: { + "build": "tsc" } 这里我们采用第3种方法,写入脚本后可以执行: npm run build 也会成功进行编译。...中的 script 中增加 start 命令: { "script": { + "start": "tsc --watch" } } 在当前目录下运行命令npm start

83020

前端next工程自动化部署到你的宝塔

去服务器将你的前端工程项目 clone 下来,没有任何阻碍 宝塔面板部署 然后我们在宝塔面板,切换到网站选项卡,至于宝塔面板以及宝塔怎么安装 登陆,就不赘述了,能够搜索出来很多教程,选中 Node 项目,如果面板提示你缺少什么依赖...,我们需要将这两个命令进行合并,取名 prod 重新 pull 项目,可以在项目配置中发现 prod 命令 提交之后,会安装对应的模块,也就是 npm install ,等完成之后,项目就会跑起来了.../bin/bash echo "" #输出当前时间 date --date='0 days ago' "+%Y-%m-%d %H:%M:%S" echo "Start" #git项目路径 gitPath...全局没有对应的命令,需要添加环境变量 这样就有了 node 以及 npm 等 当我又重新试了一下之后,发现脚本跑了,但是页面并没有更新,打包也打了,也能访问,但是资源并不是最新的,这是什么情况?.../bin/bash echo "" #输出当前时间 date --date='0 days ago' "+%Y-%m-%d %H:%M:%S" echo "Start" #git项目路径 gitPath

1.7K20
领券