无意中学了点 powershell ,惊了, 这东西是不是低估了

2023-08-27 14:48:57 +08:00
 iorilu

以前以为 shell 都是 bash 之类那种

来来回回就是调点命令,用管道串联几个命令

来来回回都是处理文本, 别提多麻烦, 还有一些诡异语法之类的 awk

大家都默认这样就不错

最近因为一些用途, 了解了点 powershell

立马惊了,powershell 命令输出的都是真正的对象, 直接 相当于管道处理对象, 不需要折腾命令数着几列到几列处理文本, 既然是对象, 直接拿属性, 调用方法都行, 方便太多

而且 powershell 现在跨平台, 开源了, 感觉微软一出手, 开源真没人玩的过啊

我打算以后 mac , 或 linux 上也用 powershell 了

有兴趣的可以了解下

19784 次点击
所在节点    程序员
135 条回复
joyhub2140
2023-08-27 20:00:25 +08:00
bash 我写过,power shell 脚本我也玩过。。

最后,我选择用 Java 写脚本,结合 yml 文件,用得挺爽的,有种用牛刀宰猪的感觉(逃。。。

好处的话,就是 Windows/Linux/MacOS 都能跑。。。

坏处的话,有时候一个简单的小功能都要几 MB 大,不过,现在我的 SSD 都 4TB 了,不在乎了。。。
fbichijing
2023-08-27 20:06:30 +08:00
就好比在当前的时间节点下处理 Excel ,不去使用 pandas 之类的,还去学 VB
同意一楼和二楼的说法。“性价比低”。Linux 下的很多命令要比 Windows 下简洁,还有 alias 之类的可以自定义各种符合自己喜欢的命令出来,Windows 要实现相似功能,贼麻烦。写 python 或者每个人自己熟悉的脚本语言不香吗,在不同平台上大多数写法都差不多。又为何一定要把自己限制死在 Windows 下?
xgdgsc
2023-08-27 20:12:12 +08:00
不如 py/julia
BugCry
2023-08-27 20:25:57 +08:00
OP 哪天回到 bash 了,记得跟大伙儿说一下
eagleoflqj
2023-08-27 20:41:22 +08:00
没有人提 node ?我的 wasm 项目跨平台构建是用 tsnode 写的脚本(因为本来也要 node ),不过里面免不了 if(platform==='win32')
favourstreet
2023-08-27 20:59:20 +08:00
楼主可能还处在刚啃了甜的部分没啃到酸的部分,等用 pwsh 处理二进制流就会感觉到痛了。不过 pwsh 能通过.net 直接调用 windows 的所有系统调用确实比其他 shell 方便太多了
iorilu
2023-08-27 21:10:20 +08:00
说实话, 我看到 pwsh 这种设计, 并不是说我马上有多大需求能用得上 pwsh 的对象特性

而是第一次感觉,bash 这种是不是落伍了

bash 当然已经几十年时间, 但面向字符串编程肯定是不方便的, 这点应该没有疑问

如果 bash 或其他什么*sh 需要进化到面向对象, 显然 linux 上没人会干这种事

所以我认为 pwsh 代表的是一种现代化的系统脚本语言

从这点上, 我是愿意学习使用的
zhuangzhuang1988
2023-08-27 21:24:56 +08:00
@joyhub2140 差不多,我用 c#写 makefile
busterian
2023-08-27 21:44:58 +08:00
我挺喜欢 powershell 的风格,而且如果方法正确,入门很快,遇到不清楚的指令可以凭借关键词 gcm -name *foo* 搜到,在 get-help foo-bar -examples 基本就清楚怎么用了。如果是 bash 或 cmd 要去啃 man 或 info 一大堆 flag 一点都不 intutive 不像 powershell 默认就有 tab 补全 flag 如果 args 有默认或可选也支持补全。
iorilu
2023-08-27 21:47:42 +08:00
@busterian 是的,pwsh 的帮助系统也是非常先进的

肯定比 man 好用多了

另外规范的命名也是很好的

动词-名词

get-help

这种命名方法, 配合帮助系统, 很容易找到需要的命令

知道命令后看看例子, 大概就能用上了
LokiSharp
2023-08-27 22:06:30 +08:00
感觉还是一如微软既往取错名字的项目,叫 PowerScript 或者 SharpScript 更好。本质上是 .net 的脚本语言实现。我感觉它比起 cmd 和 sh 健壮性更高,适合写脚本,但是由于健壮性太高反而不适合当 shell 。然后既然写脚本我为啥不用更专业的 Python
kawaiidora
2023-08-27 22:12:49 +08:00
你知道吗,2015 年前,互联网程序员的政治正确是鄙视微软,以不用微软产品为荣
james122333
2023-08-27 22:14:49 +08:00
因为对 bash 等的理解还很菜才会这样觉得 当然研究需要时间不强迫 基本上也很少人在研究 我研究出来我也很少分享 基本上能说比 powershell 精美多了 powershell 就是一团
lishoujun
2023-08-27 22:17:17 +08:00
我的环境是 macos 和 linux desktop 平时默认用 fish 。 powershell 和 bash 不是同时期的软件吧。
ambition117
2023-08-27 22:25:37 +08:00
后来发现不如直接写 python…
iorilu
2023-08-27 22:26:07 +08:00
@kawaiidora 原来是这样啊

但是这几年, 微软方向变了, 大力投入开源

而且微软的实力在这里, 一出手搞得 vscode 基本现在成了大多数程序员首选了

包括 python ,linux 等东西微软也投入不少

所以, 我也看好后面 pwsh 微软也会大力投入的
hhylx1950
2023-08-27 22:28:01 +08:00
@iorilu 是不是太看不起胶水语言 python 了,pythonnet 了解一下,能直接从 CLR 的 namespace import 。python 还能和 objc 集成,和 linux 的集成就更不用说。我何必学一门新语言,只为了 win 上写脚本更舒服呢
jin7
2023-08-27 22:37:05 +08:00
自己用 别分享出来
swulling
2023-08-27 22:38:18 +08:00
不如 Python as shell

https://xon.sh/
james122333
2023-08-27 23:02:43 +08:00
@jin7

powershell 也没什么好藏的 github 上使用量也不小 但我就是不会想用它

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/968637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX