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

nodejs失败,但即使我设置了-e,bash也不会停止

在这个问答内容中,你提到了一个关于nodejs失败的问题,并且提到了设置了-e选项,但是bash仍然不会停止的情况。我将为你解答这个问题。

首先,让我们来了解一下nodejs和bash的概念和作用。

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建快速、可扩展的网络应用程序。它使用事件驱动、非阻塞I/O模型,使得它非常适合构建数据密集型的实时应用程序。

Bash是一种Unix shell和命令语言,常用于在Linux和其他类Unix系统中执行脚本和命令。它提供了一个命令行界面,用于与操作系统进行交互,并且可以执行各种任务,包括文件操作、进程管理等。

现在回到你的问题,你提到了即使设置了-e选项,bash仍然不会停止。-e选项是bash中的一个选项,用于在脚本中遇到错误时立即停止执行。但是在你的情况下,即使设置了-e选项,bash仍然没有停止。这可能是由于以下几个原因:

  1. 语法错误:首先,请确保你的脚本中没有语法错误。语法错误可能导致脚本无法正常执行,从而忽略了-e选项。你可以使用语法检查工具或者在命令行中执行脚本来检查语法错误。
  2. 子进程:如果你的脚本中启动了子进程或者调用了其他命令,那么-e选项可能不会影响这些子进程或命令的执行。你可以在调用子进程或命令时使用-e选项,或者在子进程或命令执行完成后检查其返回值来实现错误处理。
  3. 错误处理:你的脚本中可能没有正确处理错误的机制。即使设置了-e选项,脚本仍然可以通过使用条件语句、错误处理函数等来捕获和处理错误,而不会停止执行。你可以在脚本中添加适当的错误处理机制,以便在发生错误时采取相应的措施。

总结起来,如果你设置了-e选项但bash仍然不会停止,你可以检查脚本中是否存在语法错误、子进程是否受到影响以及是否正确处理错误。通过排除这些可能的原因,你应该能够解决这个问题。

关于腾讯云相关产品和产品介绍链接地址,由于你要求不提及特定的云计算品牌商,我无法给出具体的产品链接。但是腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储等,你可以访问腾讯云官方网站,了解更多关于这些产品的信息和使用方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

获取 NodeJS 程序退出码

C 的方式,可以通过process.exit()来执行退出。...2: 未使用(由 Bash 保留用于内置误用) 3 内部 JavaScript 解析错误:NodeJS 引导过程中的内部 JavaScript 源代码导致解析错误。...6 非函数的内部异常句柄:存在未捕获的异常,内部致命异常句柄不知何故设置为非函数,无法调用。 7 内部异常句柄运行时失败:存在未捕获的异常,并且内部致命异常句柄函数本身在尝试处理时抛出错误。...在以前版本的 NodeJS 中,退出码 8 有时表示未捕获的异常。 9 无效参数:指定未知选项,或者提供需要值的选项而没有值。...12 无效的调试参数:设置 --inspect 和/或 --inspect-brk 选项,选择的端口号无效或不可用。

3.5K10

linux26-命令除错不完全指南

另外,我们可以在脚本的末尾指定exit xxx,设定xxx 使得该脚本返回指定的退出码。退出码的范围为0-255,因此如果退出码为大于该区间的数,则shell 会通过模运算取余。...found 4 + echo good good 3-终止命令 上面的例子不难发现,即使脚本发生错误,shell 不会立即终止: export PS4='$LINENO + ' $ bash -x...实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。...也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因而set -e 也就失效: ❯ cat > script.sh a=3 b | echo $a c=33 echo $c ^C ❯ bash...-e script.sh 3 script.sh: line 2: b: command not found 33 对此,我们可以设置-o pipefail 用来解决这种情况,只要一个子命令失败,整个管道命令就失败

92620
  • 【翻译】请停止编写 shell 脚本

    shell脚本的问题 bash作为一个具体的例子,我们重点来看看。 问题 #1:错误不会停止执行 考虑以下 shell 脚本: #!...$ bash bad1.sh cp: cannot stat 'newfil': No such file or directory Success 即使命令失败,脚本会继续运行!...bad2.sh: line 3: PTH: unbound variable 问题 #3:管道不会捕获错误 我们认为我们用 解决失败的命令问题set -e,但我们并没有解决所有情况: #!...这还不够。 问题 #4:子shell 很奇怪 注意:本文的早期版本包含有关子shell 的错误信息。感谢 Loris Lucido 指出的错误。...如果子shell 中的错误是命令参数的一部分,则它们不会被视为错误。这意味着 subshell 的错误会被丢弃。 一个例外是直接设置变量,所以我们需要这样编写代码: #!

    2.4K21

    编写可靠 bash 脚本的一些技巧

    正式运行的脚本可以不加。 -e :遇到一个命令失败(返回码非零)时,立即退出。 bash 跟其它的脚本语言最大的不同点之一,应该就是遇到异常时继续运行下一条命令。这在很多时候会遇到意想不到的问题。...如: some_cmd || true        # 即使some_cmd失败,仍然会继续运行some_cmd || RET=$?      ...如果想让管道中任意一条命令失败就退出,就要用后面提到的-o pipefail 。 加-e 有时候可能会不太方便,动不动就退出。...还是应该坚持所谓的fail-fast 原则,也就是有异常时停止正常运行,而不是继续尝试运行可能存在缺陷的过程。如果有命令可以明确忽略异常,那可以用上面提到的 || true 等方式明确地忽略之。...但有时候在已经设置-u 后,某些地方还是希望能把未定义变量展开为空串,可以这样写: ${SOME_VAR:-}#  bash变量展开语法,可以参考:https://www.gnu.org/software

    1.2K21

    nodeIntegration | Electron安全

    0x00 提醒 上一篇Electron 安全与你我息息相关文章非常的长,虽然提供 PDF 版本,还是导致很多人仅仅是点开看了一下,完读率大概 7.95% 左右,上一篇真的是觉得很重要的一篇,对大家了解...B8%8D%E8%A6%81%E4%B8%BA%E8%BF%9C%E7%A8%8B%E5%86%85%E5%AE%B9%E5%90%AF%E7%94%A8-nodejs-%E9%9B%86%E6%88%...带着这种疑问,我们开始今天的文章 这篇文章在文末提供 PDF 版本 0x02 搭建测试程序 我们根据官方重大更改中提到的两个节点 Electron 5.0 和 Electron 20.0 将整个时间线分成四段...NodeJS 的环境中测试,也就是全部环境 预加载脚本 渲染进程 失败 iframe 失败 小结 在配置 2 中 测试点 是/否可以执行 NodeJS 预加载脚本 是 渲染页面 否 iframe 否...所以我们需要再次测试了,这里就不把过程中展示出来了 从 Electron 6.0.0 开始 sandbox: true 时, Preload 脚本的 NodeJS 环境为受限环境 再此之前即使设置

    69110

    作为一个程序员,什么是脚本。必须要理解「建议收藏」

    大家好,又见面是你们的朋友全栈君。 Javascript 是一门动态类型、面向对象的脚本语言。 对脚本进行一个感性的认识。就是一个跟计算机执行的文本。...q=bash+%E7%AC%AC%E4%B8%80%E4%B8%AA+%E5%8F%82%E6%95%B0 判断目录是否已存在 if [ -d $1 ]; then echo 'error: dir...我们在 Bash 命令行里输入 Bash 命令,可以在 Node.js 命令行里输入 JS 命令(Ctrl + D 退出) Bash 脚本能做的事情,JS.../usr/bin/env node (以下操作在 Windows 上可能失败失败就算了) 然后你就可以直接用 ~/local/jsdemo.js zzz (省得输入 node )。...,比如 1 # 等符号 不用特别去学 Bash 脚本的用法,遇到不会的就 Google 不用特别去学 Node.js 脚本的用法,遇到不会的就 Google 新人写代码最大的问题就是「抄错了」 多写了一个空格

    2.4K20

    最佳Node实践之实用十式: Node大师带来的启迪

    以下是我们将涉及到的内容: 使用 npm scripts — 那些bash脚本,当可以使用npm scripts和Node更好地组织它们的时候,就别再用写的。...有人 (1, 2, 3, 4) 甚至已经放弃使用Grunt、Gulp,喜欢更低级更可靠的npm script。完全可以理解他们的观点。...此外,一些库和框架(确定Express就是这么做的)将使用如NODE_ENV信息,来修正它们的行为。 将其设置为 production。 设置你的 MONGO_URI和 API_KEY值。...即使使用ES6和ES2016/ES7增加的两个功能,JavaScript仍然有它的诡异之处。 除了JavaScript,还有其他可以用的选择,你或你的团队可以从中受益,仅需稍微设置一下。...学习永远不会停止,通过实践带来的失败和成功,相信很快我们将有不同的最佳实用技巧。 这是肯定的。 最后,想谈一谈软件是如何吞噬着这个世界,而世界是如何正在被JavaScript吞噬的。。。

    91120

    Bash 脚本 set 命令教程

    实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。 command || exit 1 上面的写法表示只要command有非零返回值,脚本就会停止执行。...set -e从根本上解决这个问题,它使得脚本只要发生错误,就终止执行。 #!/usr/bin/env bash set -e foo echo bar 执行结果如下。...$ bash script.sh script.sh:行4: foo: 未找到命令 可以看到,第4行执行失败以后,脚本就终止执行了。 set -e根据返回值来判断,一个命令是否运行失败。...还有一种方法是使用command || true,使得该命令即使执行失败,脚本不会终止执行。 #!...Bash 会把最后一个子命令的返回值,作为整个命令的返回值。也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因此它后面命令依然会执行,set -e就失效。 请看下面这个例子。 #!

    1.7K40

    Bash 脚本 set 命令教程

    实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。 command || exit 1 上面的写法表示只要command有非零返回值,脚本就会停止执行。...set -e从根本上解决这个问题,它使得脚本只要发生错误,就终止执行。 #!/usr/bin/env bash set -e foo echo bar 执行结果如下。...$ bash script.sh script.sh:行4: foo: 未找到命令 可以看到,第4行执行失败以后,脚本就终止执行了。 set -e根据返回值来判断,一个命令是否运行失败。...还有一种方法是使用command || true,使得该命令即使执行失败,脚本不会终止执行。 #!...Bash 会把最后一个子命令的返回值,作为整个命令的返回值。也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因此它后面命令依然会执行,set -e就失效。 请看下面这个例子。 #!

    1.5K50

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

    即使加了nohup,关闭ssh连接后,当前用户启动的进程会全部终止。 因此,远程执行的命令,必须是守护进程才行。...二、pm2守护Nodejs 简介 pm2是nodejs的一个带有负载均衡功能的应用进程管理器的模块,类似有Supervisor,forever,用来进行进程管理。...pm2 stop all #停止PM2列表中所有的进程 pm2 stop 0 #停止PM2列表中进程为0的进程 三、pm2启动脚本 由于公司的Nodejs项目,比如test,它有4个服务,因此有4个app.js...如果设置成true,当应用程序变动时,pm2会自动重载。这里可以设置你要监控的文件。...merge_logs: exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群)

    2.5K20

    Windows 下 wsl2 的使用及问题记录

    适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。...网上也有很多解决的方案,也有手动配置 ip 的,编写一些脚本设置为开机自启,这样灵活度太低。接下来介绍一种动态获取的方式。...这就是一个问题,当然 Windows 肯定想到了这个问题,在官方文档中就提到了这个并提供 禁用互操性 的方法 地址.但我并没有使用这个方法 的解决方法是在 linux 系统中,重置环境变量,将所有来自...,这个以后会说,主要基于 git-bash ,因为不需要安装其他的环境,足够简单,跟 linux 的原生终端还是差一些....推荐终端方案 也是目前正在使用的方案,可能过一段时间就改了 Windows 下 使用 cmder 来复用 git-bash,将 git-bash 设置为 cmder 的默认终端,避免使用 cmd,powershell

    7.4K20

    Docker折腾记: (1)构建yapi容器,从构建发布到可用

    yapi容器 已经内置bash为默认shell,vim配置一些常用的设置 ? vim的预设 ?...,不在本地打包,不会有慢之说 所以要拉取的小伙伴,只要考虑docker拉取源就行啦 ---- 常规构建yapi 这里选择的是基于alpine来构建, 构建的姿势很多, 你可以从一个空容器能从别人打包好的...只要进入的镜像的时候指定shell即可 # - 最后是删除一些缓存 # - 克隆项目 # - 采用自动化构建不考虑国内npm源 , 可以降低初始化失败的概率 # !!...Docker Hub提供automated build,简言之就是自动化构建, 我们可以关联github仓库来构建,bitbucket可以,但是不用这个; ?...: 这句话就是非侵入式的进入容器内部,并且调用的shell为bash,这个exit不会干掉容器 docker attach这个命令慎用,会在终端退出的会把容器停止,这条命令是看情况使用的!!!!

    2.3K30

    Node.js 服务 Docker 容器化应用实践

    不会休息,谁就不会工作。...—— 列宁 本篇不会讲解 Docker 命令的使用、安装等,因为在之前一篇文章 【一文零基础教你学会 Docker 入门到实践 】 中已经讲解的很详细了,不清楚的可以点击链接回头在重新看下,本篇重点是介绍...scripts 里面增加了 npm run dev、 npm run pro 两个命令,因为想在这里介绍如何在构建时传入参数来动态设置环境变量。...动态设置环境变量 为了解决上面的疑问,的想法是在镜像构建时传入参数来动态设置环境变量,对 Dockerfile 文件做下修改,看以下实现: EXPOSE 30010 ARG node_env # 新增加...in multiple repositories 细心的你也许会发现镜像 ID 6b1c2775591e 同时指向 hello-docker 和 mayjun/hello-docker 仓库,这也是造成删除失败的原因

    1.7K21

    一个仿V2EX的开源二次元论坛程序:Vmoex安装教程

    #如果Fileinfo拓展安装失败,就是内存太小,我们可以添加swap,不适用于ovz 面板添加,找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。...: #Debian、Ubuntu系统 curl -sL https://deb.nodesource.com/setup_10.x | bash - apt-get install -y nodejs...git #CentOS系统 curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum install nodejs -y git 安装Bower...3、关于redis_dsn参数,这里是建议设置密码的,毕竟Redis有漏洞,如果你不会使用Redis的,直接修改为redis_dsn: 'redis://localhost' 4、修改socket_host...4、SSL等其他设置可自行修改 最后我们打开站点就可以看到一个萌萌哒的论坛,历史帖子,评论什么的可以在后台自行删除。

    2.4K10

    《Linux命令行与shell脚本编程大全》第十六章 控制脚本

    可以删除以及设置好的捕获。在trap命令与希望恢复默认行为的信号列表之间加上两个破折号就行了。  trap -- SIGINT 可以用单破折号来恢复信号的默认行为。 例子:   1 #!...如果终端会话退出,那么后台进程会退出。 16.3 在非控制台下运行脚本 需求:在终端启动脚本,让脚本一直运行到结束,即使退出了终端会话。 nohup命令可以做到。...的atq是自己装的,好像不会默认安装。 ? 作业列表列出了作业号,系统运行该作业的日期以及所在的作业队列。上面的都在a队列。 4.删除作业 atrm删除等待中的作业,后面接作业号。...要为cron时间表添加条目可以用-e选项。 $cron -e 如果要设置定时运行自己的程序,就需要添加条目。 3.浏览cron目录 有4个预配置的cron脚本目录可以供我们使用。...(这个理解不来) 补充第六章的内容: 用户登录bash shell需要运行的启动文件。

    3K61
    领券