google/zx

zx是谷歌开源的一个能够帮助开发者快速编写脚本的工具,它使用JavaScript作为编程语言。

示例脚本如下:

#!/usr/bin/env zxawait $`cat package.json | grep name`let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`await Promise.all([$`sleep 1; echo 1`,$`sleep 2; echo 2`,$`sleep 3; echo 3`,
])let name = 'foo bar'
await $`mkdir /tmp/${name}`

将代码保存为mjs文件,使用zx即可执行脚本:

zx ./script.mjs

dotnet-script

dotnet-script是一个开源的.net core global tool, 使用它,开发人员可以获得在命令行直接运行C#脚本文件的能力。

使用下列命令安装dotnet-script:

dotnet tool install -g dotnet-script

新建一个csx文件,文件内容如下:

Console.WriteLine("My IO");

然后,使用下列命令运行脚本:

dotnet-script ./test.csx

ProcessX

上面这种方式写的还是C#程序而不是脚本。

不过,利用Nuget包ProcessX,提供了执行脚本的静态方法:

#r "nuget: ProcessX, 1.5.0"using Zx;
using static Zx.Env;// 直接执行命令
await "echo My IO";// 转义后执行
var str = "My IO";
await process($"echo {str}");// 带颜色输出文本
log("My IO", ConsoleColor.Red);

结论

使用dotnet-script+ProcessX,我们也可以写出类似google/zx的脚本了。

如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“

使用C#像google/zx一样编写脚本相关推荐

  1. TamperMonkey编写脚本常用api中文版(附文档原地址和各种api案例)

    TamperMonkey脚本api文档 用户脚本头部 @name @namespace @version @author @description @homepage, @homepageURL, @ ...

  2. arcgis python脚本实现从界面选择输入输出_arcgis python脚本实现从界面选择输入输出_ArcGIS Python编程案例(2)-使用ArcPy编写脚本......

    本章将涉及以下案例: 使用ArcGIS Python窗体 访问ArcPy 从脚本中执行工具 使用ArcGIS桌面软件帮助系统 使用变量存储数据 访问ArcPy中的模块 引言 地理处理任务往往是耗时且重 ...

  3. Linux编写脚本查看mod,Linux shell脚本编写基础

    在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...

  4. SQL Server 2008编写脚本时智能提示功能丢失的处理

    SQL Server 2008编写脚本时智能提示功能丢失的处理 1.查看工具选项中[启用IntelliSense]是否打开: 选择[工具]-->[选项]打开选项页面,依次展开[文本编辑器]--& ...

  5. 用python写脚本看什么书-终于知晓python编写脚本入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  6. ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:

    使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y接下来我们就可以使用s ...

  7. 查看linux的用户 7.2,linux下查看用户登入系统相关命令及编写脚本(七)

    linux下查看用户登入系统相关命令及编写脚本(七) 查看用户登入系统日志 1.w 显示谁登入并正在做什么事 2.who 显示谁登入 -r:显示系统运行级别 3.sleep 睡眠命令(sleep 5 ...

  8. python编写脚本替换 jar包文件_shell-替换jar包中配置文件脚本

    脚本运行平台:centos7.3 1.编写脚本 vi /tmp/change.sh #!/bin/bash #需要替换的包名称 bmc=$1 #需要替换的文件名称 hhwjmc=$2 #找到替换文件路 ...

  9. linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)

    linux下Bash编程until语句及格式化硬盘分区等编写脚本(十) 1.循环语句结构总结 1.1.while语句当条件满足时,进入循环语句 while 条件; do 语句 done 1.2.unt ...

最新文章

  1. Python开发游戏的正确姿势,看这篇就够了
  2. 拉开你和同龄人差距的,不是基因,不是努力,而是……
  3. 理解Javascript_12_执行模型浅析
  4. 分度器中硒定位器的完整指南(示例)
  5. UNIX网络编程——套接字选项(SO_RCVBUF和SO_SNDBUF)
  6. spring编程式事务
  7. oracle占用内存 100,System表空间占用率100%,管理Oracle系统审计
  8. 19-3-1Python的PyCharm编辑器,以及格式化输出、while循环、运算符、编码初识
  9. 产品经理面试——简历填写
  10. JRebel过期激活
  11. [图像识别]相似图片搜索的原理
  12. 闲鱼卖货,月入1.5w的小众类目分享。
  13. 自己动手做一个PLC 软PLC
  14. 深度学习的归一化和反归一化
  15. 渗透测试:密码破解小结
  16. 目前流行的装修风格_现在最流行的装修风格有哪些?
  17. 获取windows系统时间
  18. sqlserver/mysql 替换部分位置的字符串
  19. Oracle EBS Interface/API(28) - 客制化开发AP付款API
  20. 企业级区块链阶段性突破,新基建有了新“底座”

热门文章

  1. 转: MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
  2. fillcolor是什么意思_fill是什么意思
  3. 滴滴Booster移动APP质量优化框架 学习之旅 三
  4. day22 Java学习 IO流(序列流)
  5. Jupyter notebook: TypeError: __init__() got an unexpected keyword argument 'io_loop 问题
  6. 关于IE 对 $.get 缓存的记录
  7. 扫描PDF417崩溃的原因找到:手机摄像头分辨率低
  8. 极光推送 api ios参数问题
  9. hdu 2648 Shopping
  10. 改变listview中item选中时文字的颜色