pwsh의 < 파일로부터 입력 수신

결론부터 말하면 할 수 없다.
아래와 같이 쓰십시오.

# github cliを使ってjsonファイルから
# azureの環境変数を設定する場合

# pwsh では<が使えないのでそれぞれのOSのデフォルトのシェルを呼び出す。
# -eq UnixでLinux系も吸収できてる
if ($PSVersionTable.Platform -eq "Unix") {
    /bin/sh -c "gh secret set AZURE_CREDENTIALS --repo $repo < $($principal_json.FullName)"
} else {

    # cmd実行用のファイルを作成
    New-TemporaryFile | Set-Variable tempfile -Scope local -Option Constant
    ($tempfile.FullName -replace "\..*$",".bat") | Set-Variable tempbat_path -Scope local -Option Constant
    Rename-Item $tempfile.FullName -NewName $tempbat_path

    Write-Output "gh secret set AZURE_CREDENTIALS --repo $repo < $($principal_json.FullName)" | Set-Content -Path $tempbat_path
    # 下のように必ずWorkingDirectoryを指定すること
    # cmdはディレクトリを跨ぐ処理ができないため。
    Start-Process $tempbat_path -WorkingDirectory (Get-Location | Select-Object -ExpandProperty Path)
    Remove-Item $tempbat_path
}
<을 사용할 수 없기 때문에 Unix, Linux에서/bin/sh에서 <를 사용할 수 있는 조개를 호출합니다
Windows에서 cmd를 호출하려면 <을 사용합니다.

의문점

  • Convertto-Json-comprex에서 json을 한 줄로 열거하면 <를 사용하지 않고 살죠?
  • ->github cli에서 환경 변수를 올바르게 설정할 수 없습니다.나는githubcli방면의 문제인지 pwsh방면의 문제인지 모르겠다. 아마도pwsh방면의 문제일 것이다.
    더 쉬워지면 안 돼요?pwsh에 이와 관련된 기능을 추가하기 전에는 아마 안 될 것입니다.

    좋은 웹페이지 즐겨찾기