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

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

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

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

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

大家都默认这样就不错

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

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

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

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

有兴趣的可以了解下

19784 次点击
所在节点    程序员
135 条回复
whileFalse
2023-08-27 23:32:15 +08:00
wget 都做不好的垃圾
vastwelkin
2023-08-27 23:43:05 +08:00
@iorilu 但,go 开始的一些新语言,都不面向对象了
aelloncs
2023-08-27 23:50:51 +08:00
猜猜为啥 shell 前面为啥是 power
sam0ple
2023-08-28 00:40:23 +08:00
没被低估,主要是不符合人类的流式思维,bash 的管道操作所见就是所得,powershell 面向对象对机器友好,对人没 bash 友好,而运维的是人
MeteorCat
2023-08-28 01:09:21 +08:00
甚至不如 Python 是正确的
mikewang
2023-08-28 01:19:42 +08:00
#30 @miyuki
这也是 PowerShell 的一个问题,大写小写加横杠,命令还老长。对于一个 Shell 来说,输入过于麻烦不是件好事。

Get-FileHash .\myfile -Algorithm SHA512
sha512sum ./myfile

两者相比我还是喜欢下者。
bao3
2023-08-28 03:08:20 +08:00
要跨平台啊,那你用 sh 就可以了,不要用 bash/power shell ,就用 posix 标准的 sh 。无论从哪个角度,ps 都不是上选。
iceheart
2023-08-28 05:57:52 +08:00
用 perl 都几乎没了,谁还有心思学其他的。
bash 的优点是
1. 可用性: linux 集成,不管哪个发行版都无需额外安装。
2. 可维护性: 足够简单,几乎没有学习成本,谁都能维护。
3. 一致性: 在各个发行版的 shell,包括 busybox ,执行起来都是一样的。

综上特点,bash 是最终选择,是人们用脚投票的结果
charlie21
2023-08-28 06:46:44 +08:00
如果 powershell 出现在 1990 年,bash 出现在 2020 年,哪个还会主动用 bash ?
james122333
2023-08-28 07:38:32 +08:00
@charlie21

不会有这种事情发生的 当时硬件不够好 这东西也违背了哲学 更何况 dotnet 在 2002 才释出 这东西就是不够轻量在现在也有一堆竞品 bash 也都不是这么弱
james122333
2023-08-28 07:48:22 +08:00
@iceheart

1. 现有的确是 bash 内建
2. 一般用法的确没难度 但深入的不是 通常见到的是一般用法就是
3.busybox 上的是 ash 不是 bash 只是在 2 的状况下来说是相容的
james122333
2023-08-28 07:53:33 +08:00
@iceheart

要相容其实也很简单 或者判断 BASH_VERSION/ZSH_VERSION...等变量做不同事即可
毕竞除了 syntax 语法错误它是不会预先做其它检查的
tyzandhr
2023-08-28 07:56:00 +08:00
我可能知道你是群里的谁了
fox0001
2023-08-28 08:22:57 +08:00
@joyhub2140 #41 这种需求,我用 go
laozhoubuluo
2023-08-28 08:29:29 +08:00
Linux native 的生态早就是 bash 的,跨平台生态也被 Python 等这种易用性和跨平台都相对好的语言抢了。况且 Linux 装 PowerShell 这个事情本身很多人就觉得很怪。
另外 bash 还支持一些 BSD 之类的其他系统,PowerShell 就不一定了。
NessajCN
2023-08-28 09:04:52 +08:00
PowerShell-Shell-Is-So-Freaking-Powerfull --that IWould.Never.Use.it C:\Users\Manifesto.xml
ladypxy
2023-08-28 09:08:15 +08:00
powershell 本来就很强大,尤其是现在可以跨平台之后
yjd
2023-08-28 09:10:50 +08:00
@mikewang 是的。命令又臭又长,还不如直接用编程写。简单的批处理就能搞定。
cheng6563
2023-08-28 09:16:18 +08:00
但是我启中断就是为了调命令啊,用 powershell 甚至原来调命令的参数都不兼容。
Cloutain
2023-08-28 09:21:08 +08:00
如果不强的话就不叫 powershell 了,只是在 python 当道的时代,人们的选择更倾向易学易用

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

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

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

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

© 2021 V2EX