wsl 对自动化处理来说真的太爽了

2021-11-15 18:56:41 +08:00
 zx900930

以前看到别人写的 bash 想转换成 batch 或者 powershell 要么就是去找对应命令的 windows 替代品, 要么就得去看看用 powershell 怎么实现同样的效果, 还很有可能有 bug. 比如下载某个 github 的最新 release(这里用 jellyfin desktop 举例)

bash

curl -s https://api.github.com/repos/jellyfin/jellyfin-media-player/releases/latest \
  | grep browser_download_url \
  | grep windows-x64.exe \
  | cut -d '"' -f 4 \
  | wget -qi -

现在有了 wsl, 可以直接这么写

batch

wsl curl -s https://api.github.com/repos/jellyfin/jellyfin-media-player/releases/latest  | wsl grep browser_download_url  | wsl grep windows-x64.exe  | wsl cut -d '^"' -f 4 | wsl wget -qi -

只需要注意处理一下转义符之类的问题, 是不是非常简单方便? 还不用担心出 bug.

7203 次点击
所在节点    Windows
33 条回复
ivan_wl
2021-11-15 19:10:17 +08:00
我直接用 cmder ,自带 git bash ,再配合 scoop 安装各种应用
rrfeng
2021-11-15 19:12:16 +08:00
那为啥不直接在 wsl 。的 shell 里跑…
xlui
2021-11-15 19:16:46 +08:00
我直接用 Windows Terminal + Git Bash + Scoop 玩
zx900930
2021-11-15 19:17:09 +08:00
@rrfeng wsl 的文件挂载有坑的, 至少跑 docker 的时候会出现 volume 挂载的文件夹被当成是文件. 而且 wsl 的 systemd 有问题. 使用 windows 自带的任务计划在 windows 底下跑更稳定.
zx900930
2021-11-15 19:21:59 +08:00
@ivan_wl
@xlui
scoop 也挺不错, 可惜和满血的 linux 仓库比, 还是缺了很多包
Dragonphy
2021-11-15 22:09:06 +08:00
我装了俩 wsl ,一个 ubuntu wsl1 ,一个 debian wsl2 ,日常开发用 wsl1 ,docker 用 wsl2
PrinceofInj
2021-11-15 22:20:28 +08:00
powershell 其实也还行,比较好理解。刚才试着写了一下这个,也挺简单的。convertfrom-json 太好用了,直接可以把 json 里面的元素都解析出来。可惜没绑定手机号不让发代码
icelo
2021-11-15 22:27:40 +08:00
可以在用 idea 跑 wsl 的代码嘛
zx900930
2021-11-15 22:40:31 +08:00
@PrinceofInj powershell 脚本确实还行, 就是代码臃肿写起来很难受, linux 很简洁的 shell 脚本用 powershell 就得写很长一串
Foreach-Object, Get-Content, Set-Content 什么的, 除了某些 Windows 限定的功能用 powershell 写, 我尽量都不用, 因为实在没精力深入学习 powershell 了.
PrinceofInj
2021-11-15 22:46:32 +08:00
@zx900930 话是前两天写在 Windows 下写了个简单的脚本需要定时运行,我的计算机又不是天天开机,又没有 Windows 服务器,然后再阿里云的 ubuntu 上装了一下 pwsh ,把脚本拷上去,居然完美运行了... 设置了一下 crontab 美滋滋
BeautifulSoap
2021-11-15 22:47:47 +08:00
@zx900930 两种不同风格喜好不同罢了。比如我就觉得 linux 这脚本的写法,每次打开一个脚本就像是开了乱码文本一样。打开别人写的脚本更是一眼抹黑,当然慢慢看是能看懂的。
zx900930
2021-11-15 22:53:15 +08:00
Buges
2021-11-15 23:41:31 +08:00
你在 Windows 下用管道传个二进制数据试试,全给你弄乱。
noahhhh
2021-11-15 23:51:29 +08:00
自动化用微软的 Power Automate 挺好
ChenShann
2021-11-16 00:02:48 +08:00
git bash 够用了。msys 资源少。wsl 虽然功能多,但老是出现莫名其妙的问题。
auh
2021-11-16 00:31:36 +08:00
wsl 存储位置移动到其他盘。windows terminal 。ahk ,快捷键映射启动,激活或最小化窗口。启动目录配置,映射 workspace ,zsh 或者其他 shell 操作增强工具,各种安装一通。完美 linux 自用小机器。shell 调试编写,那是灰常省心
msg7086
2021-11-16 06:28:01 +08:00
你可能不知道 msys2 ?
PrinceofInj
2021-11-16 07:57:47 +08:00
@noahhhh 这几天正在捣鼓这个,他貌似不支持自定义脚本,只能运行一些整合好的操作
dreampet
2021-11-16 08:54:01 +08:00
我们产品有个组件需要 Linux 下编译, 之前都是要求客户单独准备一台 Linux 电脑使用,还得配置各种运行环境才能使用。

现在随产品带了一个包含全套运行环境的 wsl rootfs ,一键编译, 客户体验直线上升
2i2Re2PLMaDnghL
2021-11-16 09:16:12 +08:00
但有个坑,powershell 下的管道会转换成字符串传递,效率相比管道会降
话说你这里其实不如 wsl bash -c "..."

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

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

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

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

© 2021 V2EX