Как установить переменные среды для bash из PowerShell? - PullRequest
2 голосов
/ 23 января 2020

Использование powershell как установить переменные окружения (здесь особенно"ApiSecret"), чтобы printenv отображало необходимые переменные?

(Исходя из предположения, что проблема в том, что Visual Studio и bash неправильно выбирают переменные окружения. Их можно установить в bash достаточно просто .)

Я нахожусь на Linux:

thufir@dur:~/powershell/helloPSTwitterAPI$ 
thufir@dur:~/powershell/helloPSTwitterAPI$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.10
Release:    18.10
Codename:   cosmic
thufir@dur:~/powershell/helloPSTwitterAPI$ 

код powershell:

Import-Module PSTwitterAPI


Set-TwitterOAuthSettings -ApiKey $env:ApiKey -ApiSecret $env:ApiSecret -AccessToken $env:AccessToken -AccessTokenSecret $env:AccessTokenSecret

#Get-TwitterUsers_Lookup -screen_name 'mkellerman'

$TwitterStatuses = Get-TwitterStatuses_UserTimeline -screen_name 'mkellerman'
#$TwitterStatuses = [array]Get-TwitterStatuses_UserTimeline -screen_name 'mkellerman'

Foreach ($status in $TwitterStatuses) {
   Write-Host $status.text
}



Write-Host "done"

Код Visual Studio:

PS /home/thufir> /home/thufir/powershell/helloPSTwitterAPI/twitter.ps1


WARNING: OAuthSettings with AccessToken '' already exists.
Invoke-RestMethod : {"errors":[{"code":215,"message":"Bad Authentication data."}]}
At /home/thufir/.local/share/powershell/Modules/PSTwitterAPI/0.0.7/public/Invoke-TwitterAPI.ps1:34 char:5
+     Invoke-RestMethod @RestMethod_Params
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Method: GET, Reques\u2026PowerShell/6.2.3
}:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Invoke-RestMethod : {"errors":[{"code":215,"message":"Bad Authentication data."}]}
At /home/thufir/.local/share/powershell/Modules/PSTwitterAPI/0.0.7/public/Invoke-TwitterAPI.ps1:34 char:5
+     Invoke-RestMethod @RestMethod_Params
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Method: GET, Reques\u2026PowerShell/6.2.3
}:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
done
PS /home/thufir> 

, но тогда ни это стандартная bash консоль:

bash консоль:

thufir@dur:~/powershell/helloPSTwitterAPI$ 
thufir@dur:~/powershell/helloPSTwitterAPI$ powershell twitter.ps1 
Invoke-RestMethod : {"errors":[{"code":215,"message":"Bad Authentication data."}]}
At /home/thufir/.local/share/powershell/Modules/PSTwitterAPI/0.0.7/public/Invoke-TwitterAPI.ps1:34 char:5
+     Invoke-RestMethod @RestMethod_Params
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Method: GET, Reques\u2026PowerShell/6.2.3
}:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Invoke-RestMethod : {"errors":[{"code":215,"message":"Bad Authentication data."}]}
At /home/thufir/.local/share/powershell/Modules/PSTwitterAPI/0.0.7/public/Invoke-TwitterAPI.ps1:34 char:5
+     Invoke-RestMethod @RestMethod_Params
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Method: GET, Reques\u2026PowerShell/6.2.3
}:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
done
thufir@dur:~/powershell/helloPSTwitterAPI$ 

bash консоль, но в PowerShell:

PS /home/thufir/powershell/helloPSTwitterAPI> 
PS /home/thufir/powershell/helloPSTwitterAPI> ./twitter.ps1
WARNING: OAuthSettings with AccessToken '17639841-ZltXv9qW0zlW60WNy2MtcAZ0FEljMqExQQ8voyy1p' already exists.
RT @adamdriscoll: Just added some #UniversalAutomation documentation about pre-defined variables in UA jobs. ....
RT @adamdriscoll: #PowerShell #UniversalDashboard 2.8.2 is now available on the PowerShell Gallery. Lots of fixes, some improvements to Adm…
@psdevuk @adamdriscoll @psdbatools ?
@adamdriscoll ?
@BillKindle @McDonalds @Wendys Sad, but that’s what I’m going to do next time. It should be ‘BigMac with Bacon Bits… ....
I was excited to try out the new BigMac with Bacon... but horrible portion.. looks like cesar salad bacon bits...… ....
@WindosNZ PSTwitterAPI? ;)
@Marioperator Thanks for the shoutout ❤️
RT @adamdriscoll: Nice! Financial charts for UD! ...U #powershell h...
@TomatoApp1 Constantly having to bind/unbind MiaoMiao device. And now the app won’t even open after trying reinstal… ...
@adamdriscoll It shall get indexed and searchable in 15 minutes! I can just imagine your amazon shopping suggestions...
@adamdriscoll @LeeAlanBerg Pics or it didn’t happen
@SwiftOnSecurity @adbertram Did you end up finding a more elegant solution?
RT @racheldianeb: Had cake and wine tonight. 2 things I said I wouldn’t consume in Jan and would generally limit in 2020. It’s Jan 1st. So…
@adilio @sstranger Someone would probably be wrong.. ?
@AndrewPlaTech @sstranger You have nothing to lose.. I mean, clearly I lost.. ;)
Someone’s mother has four sons. North, South and East. What is the name of the fourth son. Private message me the n… ...:,...
RT @_youhadonejob1: Let's all take a moment to recognize this man, who was instrumental in thwarting the Nakatomi Plaza terrorist attacks o…
RT @EssentialSign_: For whoever needs this this evening. ...
RT @wongmjane: I'm working on something new on my website, check it out and lemme know what you think :D

http://localhost:3000
done
PS /home/thufir/powershell/helloPSTwitterAPI> 

(с bash, printenv не показывает ключи API, от которых зависит сценарий .)

Версия: 1.41.1 Фиксация: 26076a4de974ead31f97692a0d32f90d735645c0 Дата: 2019-12-18T15: 04: 31.999Z Электрон: 6.1.5 Chrome: 76.0.3809.146 Node.js: 12.4.0 V8: 7.6.303.31-электрон.0 ОС: Linux x64 4.18.0-25-generi c snap

1 Ответ

0 голосов
/ 24 января 2020

Для контекста это решение, но оно использует стандарт bash в Ubuntu:

export ApiKey="57647625454354365"

, чтобы проверить, правильно ли установлен ApiKey, выполните:

echo $ApiKey

https://askubuntu.com/a/1205233/45156

Но все еще с нетерпением ждем выполнения sh этого с powershell:

https://askubuntu.com/q/1205227/45156

Потому что пока я могу запустите pwsh twitter.ps1, и powershell правильно выберет переменные env, код Visual Studio не сможет это сделать. Смотрите также:

https://code.visualstudio.com/docs/editor/variables-reference

...