使用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

2f4c9b81b905859d8938ea52b96c06a5.png

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);

7f631a498a51347190101eadd511c924.png

结论

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

在实际的工作项目中, 缓存成为高并发、高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征:在分层系统中处于内存/CPU具有访问性能良好,缓存数据饱和,有良好的数据淘…

5部适合学英语的动画电影,快和孩子一起看!

全世界只有3.14 % 的人关注了爆炸吧知识今天我们与大家分享5部非常适合小学生学习英语的动画电影,家长们可依据不同类别和主题为孩子挑选喜欢的影片,在家陪孩子一起观看。文末可免费领取哦~01 《丁丁历险记》讲述的是一天丁丁买了一只古老的船模送给船长…

OC面向对象—封装

OC面向对象—封装 一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用interface和implementation来处理类。 interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。implemen…

10张让你大脑崩溃的图,敢接受挑战吗?

全世界只有3.14 % 的人关注了爆炸吧知识快睡了吧?来做一组视觉游戏~一些人热爱挑战各种错觉,如果你也是这类型图片的粉丝,这10张图片会让你非常过瘾!入门篇【挑战一】在这张图片中,你能看到几个红球?5个&am…

Source Generator 单元测试

Source Generator 单元测试IntroSource Generator 是 .NET 5.0 以后引入的一个在编译期间动态生成代码的一个机制,介绍可以参考 C# 强大的新特性 Source GeneratorGetStarted使用起来还算比较简单的,我平时一般用 xunit,所以下面的示例也是使…

又一个中国男人荣获巨奖!拿奖拿的手软,却坦言“我对诺奖没有兴趣”...

全世界只有3.14 % 的人关注了爆炸吧知识获得诺奖似乎只是时间问题2020年9月10日,2021年科学突破奖( BREAKTHROUGH PRIZES)正式公布。来自中国香港的科学家卢煜明获得了生命科学科学突破奖,华人数学家孙崧获得了数学新视野奖。前几…

ffbe攻略站_最终幻想勇气启示录ffbe兵员强化攻略

最终幻想勇气启示录兵员如何强化?兵员强化后有哪些加强?来看看9k9k小编带来的最终幻想勇气启示录ffbe兵员强化攻略。在兵员选栏中,我们可以看到有强化兵员这一选项,在这里面,我们可以选择兵员进行强化,强化…

不止命令行!自定义VS生成事件

前言在VS中打开项目属性,选择“生成事件”选项卡。在“生成前事件命令行”或“生成后事件命令行”文本框中可以输入任何命令提示符或.bat文件中有效的命令:但是,有没有可能执行更丰富的命令呢?生成事件的本质上面设置的“生成事件…

如果你女朋友不让你看她卸妆......

1 如果你女朋友不让你看她卸妆▼2 扫地机器人的正确用法(图源网络,侵删)▼3 来比个心(素材来源网络,侵删)▼4 精彩攻防战▼5 那些吃辣条的小学生长大了...▼6 人生的道路上有时候也要回头看看▼7 先礼…

[9月29日的脚本] 枚举SharePoint列表(PowerShell)

脚本下载: SPListEnumerator.zip http://gallery.technet.microsoft.com/scriptcenter/SPListEnumerator-PowerShell-b0ce0b9f 本脚本通过一个“大型”列表或者是文档库来枚举并为相关项提供信息。 在SharePoint(2007版和2010版)中,我们有一个…

在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务https://procodeguide.com/programming/polly-in-aspnet-core/在本文中,我们将了解如何在微服务中实现弹性容错,即在 ASP.NET Core 中使用 Polly 构建弹性微服务(Web API&#xff0…

Android开发者指南(29) —— USB Host and Accessory

前言 本章内容为Android开发者指南的 USB章节,译为"USB主从设备",版本为Android 4.0 r1,翻译来自:"太阳火神的美丽人生",欢迎访问他的博客:"http://alot.sinaapp.com"&#…

知乎超高赞:都有哪些习惯值得长期坚持?

全世界只有3.14 % 的人关注了爆炸吧知识知乎上有个高赞问题:有哪些值得长期坚持下去就能改变人生的好习惯?其中最高频的回答是读书。随着经历和阅历的增加,越来越多的人清醒的认识到:读书不再是学生时代的事,而是一生的…

mysql 免费前端_MySQL

MySQL这是一个关系型数据库,存在表的概念。结构数据库可以存放多张表,每个表可以存放多个字段,每个字段可以存放多个记录。DOS命令操作数据库PHPstudy使用终端打开数据库第一步:设置-->MySQL工具-->MySQL命令行;…

惊了!日本街头出现透明公厕,竟有人排队抢着上!

全世界只有3.14 % 的人关注了爆炸吧知识最近在日本一个公园内,一间透明的厕所火了!厕所为什么是透明的?如何保证私密性?还是一个装置艺术,在哗众取宠?相信你跟我有一样的疑问。其实啊,这是日本财…

Gitflow branch与Docker image tag命名冲突怎么办?

谷歌还是比必应要好用一点。在前公司,我根据主流的git flow 给团队搭建了一套devops流程,运行在 docker & k8s上。在现代devops流程中,一般推荐使用git分支名或者git tag作为镜像的tag名。在实际操作中, 我遇到了一个流程阻塞…

ubuntu 安装 php

按照 Unofficial Ubuntu 6.06 (Dapper Drake) Linux Starter Guide的步骤来 一、安装Apache2 sudo apt-get install apache2 然后在Firefox中打开: http://localhost/ 提示成功 安装完毕后,接下来就要启动Apache了 如果只是用于本地开发,加强安全性&…

测试你的Python 水平----6

为什么80%的码农都做不了架构师?>>> 1、问:简述python中unicode和utf-8的关系?常用的函数有哪些?答:unicode是一个字符编码集合,定义每个字符的唯一编码;utf-8则是unicode的一种实现…

970页绝版资料!初高中数学与竞赛知识点+方法技巧,由苏步青当顾问,众多一线名师共同编写!...

全世界只有3.14 % 的人关注了爆炸吧知如何才能学好数学?我国著名数学家苏步青先生曾说:"要学好数学,方法不外乎打好基础,多做习题,多加思索和分析”。为了帮助大家学好数学,今天,超模君要给…

使用WTMPlus快速搭建发卡网

快点关注我们吧作者介绍不倔强的草莓,从事互联网乞讨行业多年,深入了解乞讨业务。开发过草莓要饭网等系统。对互联网乞讨的运营有一定经验。什么是WTM框架?WTM框架是一款.NET平台下的开源快速开发框架,可以快速、灵活、高效的开发一个基于.NE…