"/>
·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 站长圈 查看内容

一经开源就爆了!谷歌这个脚本工具注定要火

2022-2-28 01:30| 发布者: admin| 查看: 260| 评论: 0|原作者: 脚本之家

摘要: 关注“脚本之家”,与百万开发者在一起开源最前线(ID:OpenSourceTop)猿妹整编项目地址:https://github.com/google/zx大家都知...
 关注
脚本之家
,与百万开发者在一起

开源最前线(ID:OpenSourceTop) 猿妹整编

项目地址:https://github.com/google/zx


大家都知道Bash很好用,但是在编写脚本时,人们通常会选择一种更方便的编程语言,比如JavaScript,但是Node.js库在使用之前还需要许多额外的操作,整体来说还是不够方便,最近谷歌开源了一个能够帮助开发者快速编写脚本的工具——ZX,短短几天就登上了Github热榜。



ZX的安装十分简单:


npm i -g zx


接下来,你需要将你的脚本编写在带有.mjs扩展名的文件中,以便能够await在顶层使用。如果你喜欢.js扩展名,可以将脚本包装为void async function () {...}()。

将以下shebang添加到zx脚本的开头:


#!/usr/bin/env zx


现在,你将能够像这样运行脚本:


chmod +x ./script.mjs
./script.mjs


或通过zx可执行文件:


zx ./script.mjs



常用命令举例

使用child_process包中提供的exec函数可以把字符串当做命令执行,并返回Promise对象。


let count = parseInt(await $`ls -1 | wc -l`)
console.log(`Files count: ${count}`)


例如,要并行上传文件:


let hosts = [...]
await Promise.all(hosts.map(host =>
  $`rsync -azP ./src ${host}:/var/www`  
))


如果执行的程序返回一个非零的退出代码, 将会抛出ProcessOutput对象:


try {
  await $`exit 1`
catch (p) {
  console.log(`Exit code: ${p.exitCode}`)
  console.log(`Error: ${p.stderr}`)
}


ProcessOutput


class ProcessOutput {
  readonly exitCode: number
  readonly stdout: string
  readonly stderr: string
  toString(): string
}


cd(),更改当前工作目录


cd('/tmp')
await $`pwd` // outputs /tmp


fetch(),对node-fetch包的包装:


let resp = await fetch('http://wttr.in')
if (resp.ok) {
  console.log(await resp.text())
}


question(),对readline包的包装:


type QuestionOptions = { choices: string[] }

function question(query?: string, options?: QuestionOptions): Promise<string>


用法:


let username = await question('What is your username? ')
let token = await question('Choose env variable: ', {
  choicesObject.keys(process.env)
})


sleep(),setTimeout函数的包装。


function sleep(ms: number): Promise


用法:


await sleep(1000)


chalk包,该包直接可用无需导入内部脚本:


console.log(chalk.blue('Hello world!'))


执行远程脚本,如果zx可执行文件的参数以开头https://,则将下载并执行该文件。


console.log(chalk.blue('Hello world!'))


最后,附上ZX在Github上的项目地址:https://github.com/google/zx
推荐视频

  推荐阅读:

谷歌这个牛逼的开源数据库,我居然等到它上Github热榜才发现

1534K Star!排名前十的 10 大前端开源项目都开源了些啥?一起来看看吧!

微软这个开源项目碉堡了!草图秒变HTML代码

据说精通Git的程序员,都用过这个开源项目

谷歌大神又一开源神器!代码调试不选它选谁?



上一篇:php中文网APP(iOS+安卓)全新上线!
下一篇:0x11Android中Drozer使用安装总结

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:13.58.28.196,GMT+8, 2024-11-23 20:39 , Processed in 0.248406 second(s), 45 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部