以前看到别人写的 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.
1
ivan_wl 2021-11-15 19:10:17 +08:00
我直接用 cmder ,自带 git bash ,再配合 scoop 安装各种应用
|
2
rrfeng 2021-11-15 19:12:16 +08:00 via Android 1
那为啥不直接在 wsl 。的 shell 里跑…
|
3
xlui 2021-11-15 19:16:46 +08:00
我直接用 Windows Terminal + Git Bash + Scoop 玩
|
4
zx900930 OP @rrfeng wsl 的文件挂载有坑的, 至少跑 docker 的时候会出现 volume 挂载的文件夹被当成是文件. 而且 wsl 的 systemd 有问题. 使用 windows 自带的任务计划在 windows 底下跑更稳定.
|
6
Dragonphy 2021-11-15 22:09:06 +08:00
我装了俩 wsl ,一个 ubuntu wsl1 ,一个 debian wsl2 ,日常开发用 wsl1 ,docker 用 wsl2
|
7
PrinceofInj 2021-11-15 22:20:28 +08:00
powershell 其实也还行,比较好理解。刚才试着写了一下这个,也挺简单的。convertfrom-json 太好用了,直接可以把 json 里面的元素都解析出来。可惜没绑定手机号不让发代码
|
8
icelo 2021-11-15 22:27:40 +08:00 via iPhone
可以在用 idea 跑 wsl 的代码嘛
|
9
zx900930 OP @PrinceofInj powershell 脚本确实还行, 就是代码臃肿写起来很难受, linux 很简洁的 shell 脚本用 powershell 就得写很长一串
Foreach-Object, Get-Content, Set-Content 什么的, 除了某些 Windows 限定的功能用 powershell 写, 我尽量都不用, 因为实在没精力深入学习 powershell 了. |
10
PrinceofInj 2021-11-15 22:46:32 +08:00 via Android
@zx900930 话是前两天写在 Windows 下写了个简单的脚本需要定时运行,我的计算机又不是天天开机,又没有 Windows 服务器,然后再阿里云的 ubuntu 上装了一下 pwsh ,把脚本拷上去,居然完美运行了... 设置了一下 crontab 美滋滋
|
11
BeautifulSoap 2021-11-15 22:47:47 +08:00 via Android
@zx900930 两种不同风格喜好不同罢了。比如我就觉得 linux 这脚本的写法,每次打开一个脚本就像是开了乱码文本一样。打开别人写的脚本更是一眼抹黑,当然慢慢看是能看懂的。
|
12
zx900930 OP |
13
Buges 2021-11-15 23:41:31 +08:00
你在 Windows 下用管道传个二进制数据试试,全给你弄乱。
|
14
noahhhh 2021-11-15 23:51:29 +08:00 via Android
自动化用微软的 Power Automate 挺好
|
15
ChenShann 2021-11-16 00:02:48 +08:00
git bash 够用了。msys 资源少。wsl 虽然功能多,但老是出现莫名其妙的问题。
|
16
auh 2021-11-16 00:31:36 +08:00
wsl 存储位置移动到其他盘。windows terminal 。ahk ,快捷键映射启动,激活或最小化窗口。启动目录配置,映射 workspace ,zsh 或者其他 shell 操作增强工具,各种安装一通。完美 linux 自用小机器。shell 调试编写,那是灰常省心
|
17
msg7086 2021-11-16 06:28:01 +08:00
你可能不知道 msys2 ?
|
18
PrinceofInj 2021-11-16 07:57:47 +08:00 via Android
@noahhhh 这几天正在捣鼓这个,他貌似不支持自定义脚本,只能运行一些整合好的操作
|
19
dreampet 2021-11-16 08:54:01 +08:00
我们产品有个组件需要 Linux 下编译, 之前都是要求客户单独准备一台 Linux 电脑使用,还得配置各种运行环境才能使用。
现在随产品带了一个包含全套运行环境的 wsl rootfs ,一键编译, 客户体验直线上升 |
20
2i2Re2PLMaDnghL 2021-11-16 09:16:12 +08:00
但有个坑,powershell 下的管道会转换成字符串传递,效率相比管道会降
话说你这里其实不如 wsl bash -c "..." |
21
noahhhh 2021-11-16 09:34:14 +08:00 via Android
|
25
zhuangzhuang1988 2021-11-16 11:28:38 +08:00
试了下 powershell 还是很爽的
(Invoke-WebRequest 'https://api.github.com/repos/jellyfin/jellyfin-media-player/releases/latest' | ConvertFrom-Json).assets | Where-Object { $_.browser_download_url -match "windows-x64" } | ForEach-Object { Invoke-WebRequest -Uri $_.browser_download_url -OutFile "windows-x64.exe" } |
26
Dragonphy 2021-11-16 11:30:34 +08:00
@PrinceofInj powershell 命令一大串,懒得学🤣
|
27
hahastudio 2021-11-16 11:41:37 +08:00
|
28
wangkun025 2021-11-16 11:56:08 +08:00
但凡家庭条件好点,我也不会用 WSL 啊。
|
30
phony2r 2021-11-16 14:20:48 +08:00
wsl 怎么解决按键冲突的问题? 比如 ctrl + c
|
32
noyidoit 2021-11-16 22:14:00 +08:00
什么都好,除了不支持文件锁,直接劝退
|