返回顶部
首页 > 资讯 > 前端开发 > VUE >在Nodejs中如何用zx库编写Shell脚本
  • 737
分享到

在Nodejs中如何用zx库编写Shell脚本

2024-04-02 19:04:59 737人浏览 安东尼
摘要

这篇文章主要介绍“在nodejs中如何用zx库编写shell脚本”,在日常操作中,相信很多人在在nodejs中如何用zx库编写Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

这篇文章主要介绍“在nodejs中如何用zx库编写shell脚本”,在日常操作中,相信很多人在在nodejs中如何用zx库编写Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Nodejs中如何用zx库编写Shell脚本”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在Nodejs中如何用zx库编写Shell脚本

Shell 脚本

创建一个 shell 脚本,即一个由 shell 执行的脚本,比如 Bash 或 zsh,是用来实现自动化重复任务的常见方法,特别是对于运维人员最熟悉了。对于前端工程师来说使用 node.js 编写 shell 脚本是个不错的选择,因为它提供了许多核心模块,并可以导入前端其他的脚本库,降低学习成本。

如果不借助 zx.js 想尝试编写一个在 Node.js 下运行的 shell 脚本,可能会发现它并不像希望的那样流畅。需要为子进程编写特殊处理,注意转义命令行参数,然后使用标准输出 stdout 和标准错误 stderr,它不是特别直观,并且使用 shell 脚本编写变得非常笨拙。

Bash shell 脚本语言是编写 shell 脚本的最佳选择,不需要编写代码来处理子进程,并且它具有用于处理 stdoutstderr 的内置语言特性。但是用Bash编写 shell 脚本也不是那么容易,语法可能相当混乱,使得实现逻辑或处理提示用户输入之类的事情变得不那么方便。

Google 的 zx.js 库有助于使用 Node.js 高效且愉快地编写 shell 脚本。

官方网站:https://GitHub.com/google/zx#-zx

安装

对于前端工程师来说,安装一个依赖是家常便饭,运行以下脚本:

npm install zx

使用

Google 的 zx.js 提供了封装子进程的创建以及从这些进程处理 stdoutstderr 的函数。下面将使用的主要函数是 $ 函数,使用 zx.js  规定脚本写入扩展名为 .mjs 的文件中,以便能够在顶层使用 await。如果习惯于 .js 扩展名,请将脚本包装在类似 void async function () {...}() 中。

下面先来使用扩展名 .mjs,每个 .mjs 文件都将以下代码作为开头:

#! /usr/bin/env node

下面就来实现一个 shell 脚本中 ls 的功能,创建文件 ls.mjs ,完整代码如下:

#! /usr/bin/env node

import { $ } from "zx";
$.verbose = false;
const output = (await $`ls`).stdout.trim();
console.log(output);

shell 脚本文件一样,需要将其转为可执行文件:

chmod +x ./ls.mjs

下面就来执行这个 Node.js 编写的 shell 脚本,执行:

./ls.mjs

在Nodejs中如何用zx库编写Shell脚本

Google 的  zx.js  还提供了其他实用函数来简化 shell 脚本编写,例如:

cd():允许更改当前的工作目录question():Node.js 的 readline 模块的包装器,可以直接提示用户输入。

#! /usr/bin/env node

import { $, cd } from "zx";
$.verbose = false; // 默认为true,以详细模式运行
const output = (await $`ls`).stdout.trim();
console.log(output);

const dirName = "zx-mkdir-tmp";
await $`mkdir ${dirName}`; // 创建目录

cd(`./${dirName}`);
const pwdOutput = (await $`pwd`).stdout.trim();
console.log(pwdOutput); // zx-mkdir-tmp

除了 zx.js 提供的实用功能外,它还提供了几个流行的脚本库,例如:

  • chalk:允许为脚本的输出添加颜色。

  • minimist:解析命令行参数的库,将它们暴露在 argv 对象下。

  • fetch:可以使用它来发出 Http 请求。

  • fs-extra:公开了 Node.js 核心 fs 模块,以及许多其他方法,可以更轻松地使用文件系统。

到此,关于“在Nodejs中如何用zx库编写Shell脚本”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 在Nodejs中如何用zx库编写Shell脚本

本文链接: https://lsjlt.com/news/88480.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在Nodejs中如何用zx库编写Shell脚本
    这篇文章主要介绍“在Nodejs中如何用zx库编写Shell脚本”,在日常操作中,相信很多人在在Nodejs中如何用zx库编写Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • linux中如何编写shell脚本
    在Linux中,可以使用任何文本编辑器编写Shell脚本。以下是编写Shell脚本的一般步骤: 打开终端并创建一个新的文本文件,...
    99+
    2023-10-23
    linux shell
  • 如何编写Linux Shell脚本
    这篇文章主要为大家展示了“如何编写Linux Shell脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何编写Linux Shell脚本”这篇文章吧。代码风格规范开头有“蛇棒”所谓sheba...
    99+
    2023-06-16
  • linux如何编写shell脚本
    编写Linux的shell脚本可以使用任何文本编辑器,如vi、nano、gedit等。以下是编写shell脚本的一般步骤:1. 打开...
    99+
    2023-09-15
    linux shell
  • 如何编写Shell脚本注释
    本篇内容介绍了“如何编写Shell脚本注释”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、单选注释以“#”开头的行就是注释,会被解释器忽略...
    99+
    2023-06-09
  • Windows下如何使用PHP编写Shell脚本?
    在Windows操作系统下,使用PHP编写Shell脚本可以帮助我们自动化执行各种任务,从而提高效率。接下来,我们将介绍如何在Windows下使用PHP编写Shell脚本。 首先,我们需要安装PHP。可以在PHP官网下载Windows版本的...
    99+
    2023-07-01
    path windows shell
  • 如何使用Java编写Shell脚本并在Unix系统中运行?
    Java 是一种广泛使用的编程语言,而 Shell 脚本则是 Unix 系统中常见的一种脚本语言。使用 Java 编写 Shell 脚本可以结合两者的优势,使得脚本更加易读、易维护和易扩展。在本文中,我们将介绍如何使用 Java 编写 Sh...
    99+
    2023-09-12
    shell unix 学习笔记
  • 如何在Unix系统中使用Java编写高效的Shell脚本?
    Unix系统是一个强大的操作系统,能够支持各种编程语言,包括Java。在Unix系统中,使用Java编写Shell脚本可以让你更加高效地完成任务,同时也可以让你的脚本更具可读性和可维护性。在本文中,我们将探讨如何在Unix系统中使用Java...
    99+
    2023-09-12
    shell unix 学习笔记
  • centos中怎么编写shell脚本
    在CentOS中编写Shell脚本主要有以下几个步骤: 打开终端,创建一个新文件,例如script.sh,可以使用touch s...
    99+
    2023-10-23
    centos shell
  • 【shell脚本编写】shell 数组的使用
    数组 shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组) shell脚本之数组 打印数组_shell数组和字典 速查 操作命令作用创建数组declare ...
    99+
    2023-09-03
    php 开发语言 linux
  • 如何写好shell脚本
    这篇文章给大家分享的是有关如何写好shell脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言产品的最终用户通常不懂技术,所以不管你怎么折腾产品代码都无所谓。但脚本代码不一样,它们是开发人员写给开发人员的。有...
    99+
    2023-06-09
  • 如何使用Go编写Apache的同步Shell脚本?
    Apache是目前最流行的Web服务器之一,因此很多人都使用它来托管自己的网站。但是,当我们有多台服务器时,如何同步网站文件和配置文件变得非常困难。传统的方法是使用Shell脚本,但是这种方法很容易出错,并且难以扩展。在本文中,我们将介绍...
    99+
    2023-10-20
    apache 同步 shell
  • Windows 系统下如何使用 Go 编写 Shell 脚本?
    Shell 脚本是一种在操作系统上运行的脚本语言,可以用于管理文件、程序和系统设置等。在 Linux 和 macOS 等 Unix 系统中,Shell 脚本是一种非常常见的工具。但是,在 Windows 系统中,Shell 脚本并不像在 ...
    99+
    2023-07-10
    windows shell path
  • 如何在Shell脚本中调用另一个脚本
    如何在Shell脚本中调用另一个脚本?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。假如有脚本 first.sh:#!/bin/bash#------------------...
    99+
    2023-06-09
  • 如何在ASP中使用shell脚本?
    如何在ASP中使用Shell脚本? 在ASP中使用Shell脚本可以帮助我们实现一些比较复杂的操作,例如运行一些需要在命令行中执行的程序、执行一些系统级别的操作等等。本文将介绍如何在ASP中使用Shell脚本,并通过演示代码来帮助大家更好地...
    99+
    2023-07-27
    缓存 shell 异步编程
  • 如何编写shell对比文件内容脚本
    这篇文章主要讲解了“如何编写shell对比文件内容脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写shell对比文件内容脚本”吧!代码如下:#!/bin/shfunction _d...
    99+
    2023-06-09
  • 如何编写shell脚本实现循环语句
    这篇文章主要介绍“如何编写shell脚本实现循环语句”,在日常操作中,相信很多人在如何编写shell脚本实现循环语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写shell脚本实现循环语句”的疑惑有所...
    99+
    2023-06-09
  • 如何编写CentOS下redis自启动shell脚本
    这篇文章主要讲解了“如何编写CentOS下redis自启动shell脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写CentOS下redis自启动shell脚本”吧!用这个脚本管理...
    99+
    2023-06-09
  • 如何使用Go编写Shell脚本并记录日志?
    Shell脚本是Linux系统中常用的命令脚本语言,通过编写Shell脚本可以方便地执行一系列命令。而Go语言作为一门高效、静态类型的编程语言,也可以用来编写Shell脚本,并且可以方便地记录日志。本文将为大家介绍如何使用Go编写Shel...
    99+
    2023-06-20
    shell 日志 leetcode
  • shell linux中如何用shell写一个占用CPU的脚本
    使用场景: 向公司申请的虚机资源自己工作用的比较方便,因占用较小basis要求回收掉,现写一个脚本,让CPU跑满一些。 首先看下共有几颗逻辑CPU cat /proc/cpuinfo |grep "processo...
    99+
    2022-06-04
    [db:TAGS]
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作