Skip to content

编写shell脚本的另一种方式

谷歌开源 zx 工具,编写 shell 脚本的另一种方式

示例代码

nodejs 运行时
js
#!/usr/bin/env zx

const data =await $`ps | awk '{print $1}'`;
console.log(data);

/* 输出内容
ProcessOutput {
  stdout: 'PID\n562\n1476\n1496\n1497\n1498\n',
  stderr: '',
  signal: null,
  exitCode: 0,
  duration: 14
}
*/

//获取 data 对象的 stdout
console.log(data.stdout);

/* 输出内容
PID
562
1512
1532
1533
1534
*/

deno 运行时

全局安装 zx 库

shell
deno install --global --allow-all npm:zx

上面代码文件赋予执行权限,执行运行

优点

  1. js 语法,易于编写,可读性强
  2. 兼容 js 生态,功能更加丰富,如 js 原生支持 json 数据处理,shell 需要 jq
  3. 容易跨平台,可以在macOS、Linux 和 Windows上运行

链接