wjswxp

wjswxp

I AM NOT A.I.
V2EX 第 109718 号会员,加入于 2015-04-08 02:36:37 +08:00
软件重构工程师。
根据 wjswxp 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
wjswxp 最近回复了
嗐,有些匹配但又不十分匹配,比如做过 Win32 Driver 但对 Linux Kernel 只有迁移知识。感觉远程是很难了。
282 天前
回复了 wjx0912 创建的主题 FFmpeg ffmpeg 最近大版本发布为啥这么快
突发奇想:当公告完某版本起删除废弃功能后,快速提升大版本可以迅速甩掉他们( doge
2022-03-06 13:15:00 +08:00
回复了 fengsien1999 创建的主题 PowerShell 现在 PowerShell 是不是没有什么用?
又想到一个例子 2333

```ps1
$files = Get-Item -Path "."
# foreach..in 和 ForEach-Object 的语法(和效率)是两回事,参见 "about_Foreach"
foreach ($file in $files) {
# 这里是和其他字符串替换略有不同的地方,pwsh 不提供单独的 ${file.Name} 写法
Write-Host "name=$($file.Name)"
}
```
2022-03-06 13:07:51 +08:00
回复了 fengsien1999 创建的主题 PowerShell 现在 PowerShell 是不是没有什么用?
> 个人认为用作交互式 shell 不好用,但是写脚本还是有用的

同感。pwsh 相比 bash 有参数的类型系统,不必借助 sed awk 能够处理字符串,写起来也感觉更可靠。

但语法不统一的问题,使学习过程很令人迷惑。

举几个例子:

```ps1
# 借助 C# String 类型的方法
if ([string]::IsNullOrEmpty($s)) {
$s = "default-value"
}

# 使用 PowerShell 内置操作符的写法不同 -match
if ($s -match $regex_pattern) {
# use $Matches
}

# 没有比较直觉的 "==" 而是 "-eq"(一致却不常规
if ($s -eq "sth") {
# ...
}

# 调用 PowerShell Cmdlet 的传参写法又有不同
# 为了使用内一表达式其结果(这里取反),要用 () 或 $() 包起来
if (-not (Test-Path -Path "path/to/not-exist")) {
# ...
}

# 如果想在传参时写表达式,同上,要用 () $() 包起来
$a = Join-Path -Path (Resolve-Path -Path ".") "filename"
```

```ps1
# 这里的 Add() 不 Out-Null 会 Out-Default ,如果在脚本的最外层那就是向 stdout 输出
$dict = [System.Collections.Generic.Dictionary[string, string]]::new()
$dict.Add("key", "value") | Out-Null

# pwsh 函数的返回值就是函数内的输出,参见文档 "about_Return"
function foo() {
# 赋值语句不会 Out-Default
$s = "Hello"
# 结尾没有 ";" 的表达式会 Out-Default
$s
# return 仅表示跳出
return
}
$a = foo() # "Hello"

# 但是在 PowerShell 5 起引入了 class 支持,在 class 里 return 符合常规编程语言的直觉
# 看文档吧 "about_Classes"
```
2021-08-27 18:20:27 +08:00
回复了 chencc48111 创建的主题 分享发现 Onenote 几个不能忍的点
OneNote 无法轻易修改内容格式,直接劝退
2021-07-02 13:00:55 +08:00
回复了 wasd6267016 创建的主题 问与答 极米投影仪不要升级系统!卡爆
要是有 root 的方法就好了
2021-05-14 08:54:27 +08:00
回复了 panky 创建的主题 创业组队 [搭团队] 开发 App,找后端研发加入
nulladmin at 163 dot com
2021-02-26 13:05:25 +08:00
回复了 yeqizhang 创建的主题 问与答 经常会纠结一些名词怎么办
不受管理的内存叫泄露可能是不准确,只是个惯用语?击穿也许只是形象的用法,因为也会说“把流量打到某台机器上”。对名词敏锐希望表述更精确是好事呀。
2021-02-04 14:49:25 +08:00
回复了 formulahendry 创建的主题 酷工作 微软,招 Java 了!
据我所知是因为要改开源项目才有这种岗位需要。.net 本身一直在用甚至与 cpp 嵌套着用,而且虽然国内生态奇怪了一点,国际上使用还蛮多的。此外,pwsh 它不香吗?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5392 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 07:47 · PVG 15:47 · LAX 00:47 · JFK 03:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.