考虑示例脚本代码importer.ps1
#!/usr/bin/env pwsh
New-Item -Path $profile -Force | Out-Null;
function main {
if (Test-AlreadyImported) {
Write-Host "Already Imported.";
}
else {
Add-Content $profile "#My Additions" | Out-Null;
Add-Content $profile "`$env:PSModulePath = `$env:PSModulePath + `";$PSScriptRoot`";" | Out-Null;
Write-Host "Import done.";
}
}
function Test-AlreadyImported {
if (Get-Content $profile | Select-String -Quiet "#My Additions") {
Write-Host "I am true";
return $true;
}
else {
Write-Host "I am false";
return $false;
}
}
main;
运行 2 次后的预期输出:
I am True.
Already Imported.
运行2次后的实际输出:
I am false
Import done.
如果我将Test-AlreadyImported
函数导入 Powershell 并执行它,那么它会返回false
. 但是在脚本中它总是返回true
.
我在犯什么概念性错误?