使用C#像google/zx一样编写脚本
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一样编写脚本相关推荐
- TamperMonkey编写脚本常用api中文版(附文档原地址和各种api案例)
TamperMonkey脚本api文档 用户脚本头部 @name @namespace @version @author @description @homepage, @homepageURL, @ ...
- arcgis python脚本实现从界面选择输入输出_arcgis python脚本实现从界面选择输入输出_ArcGIS Python编程案例(2)-使用ArcPy编写脚本......
本章将涉及以下案例: 使用ArcGIS Python窗体 访问ArcPy 从脚本中执行工具 使用ArcGIS桌面软件帮助系统 使用变量存储数据 访问ArcPy中的模块 引言 地理处理任务往往是耗时且重 ...
- Linux编写脚本查看mod,Linux shell脚本编写基础
在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...
- SQL Server 2008编写脚本时智能提示功能丢失的处理
SQL Server 2008编写脚本时智能提示功能丢失的处理 1.查看工具选项中[启用IntelliSense]是否打开: 选择[工具]-->[选项]打开选项页面,依次展开[文本编辑器]--& ...
- 用python写脚本看什么书-终于知晓python编写脚本入门教程
PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...
- ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:
使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y接下来我们就可以使用s ...
- 查看linux的用户 7.2,linux下查看用户登入系统相关命令及编写脚本(七)
linux下查看用户登入系统相关命令及编写脚本(七) 查看用户登入系统日志 1.w 显示谁登入并正在做什么事 2.who 显示谁登入 -r:显示系统运行级别 3.sleep 睡眠命令(sleep 5 ...
- python编写脚本替换 jar包文件_shell-替换jar包中配置文件脚本
脚本运行平台:centos7.3 1.编写脚本 vi /tmp/change.sh #!/bin/bash #需要替换的包名称 bmc=$1 #需要替换的文件名称 hhwjmc=$2 #找到替换文件路 ...
- linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)
linux下Bash编程until语句及格式化硬盘分区等编写脚本(十) 1.循环语句结构总结 1.1.while语句当条件满足时,进入循环语句 while 条件; do 语句 done 1.2.unt ...
最新文章
- Python开发游戏的正确姿势,看这篇就够了
- 拉开你和同龄人差距的,不是基因,不是努力,而是……
- 理解Javascript_12_执行模型浅析
- 分度器中硒定位器的完整指南(示例)
- UNIX网络编程——套接字选项(SO_RCVBUF和SO_SNDBUF)
- spring编程式事务
- oracle占用内存 100,System表空间占用率100%,管理Oracle系统审计
- 19-3-1Python的PyCharm编辑器,以及格式化输出、while循环、运算符、编码初识
- 产品经理面试——简历填写
- JRebel过期激活
- [图像识别]相似图片搜索的原理
- 闲鱼卖货,月入1.5w的小众类目分享。
- 自己动手做一个PLC 软PLC
- 深度学习的归一化和反归一化
- 渗透测试:密码破解小结
- 目前流行的装修风格_现在最流行的装修风格有哪些?
- 获取windows系统时间
- sqlserver/mysql 替换部分位置的字符串
- Oracle EBS Interface/API(28) - 客制化开发AP付款API
- 企业级区块链阶段性突破,新基建有了新“底座”
热门文章
- 转: MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
- fillcolor是什么意思_fill是什么意思
- 滴滴Booster移动APP质量优化框架 学习之旅 三
- day22 Java学习 IO流(序列流)
- Jupyter notebook: TypeError: __init__() got an unexpected keyword argument 'io_loop 问题
- 关于IE 对 $.get 缓存的记录
- 扫描PDF417崩溃的原因找到:手机摄像头分辨率低
- 极光推送 api ios参数问题
- hdu 2648 Shopping
- 改变listview中item选中时文字的颜色