programing

홈 디렉토리를 가져오시겠습니까?

powerit 2023. 9. 5. 20:52
반응형

홈 디렉토리를 가져오시겠습니까?

스크립트에서 사용자의 홈 디렉토리에서 디렉토리를 가져오려고 합니다.이게 제가 노력하고 있는 것이지만,~는 홈 디렉토리로 확장하는 대신 리터럴로 인터프리터됩니다.그것을 확장시킬 방법이 있습니까?그렇지 않다면 다른 방법으로 홈 디렉토리를 얻을 수 있습니까?

$mySourceDir = "~/Projects/svn/myProject/trunk" # Single quote also does not expand
cd $mySourceDir

이것은 OSX에서 PS 6 베타를 사용하는 것입니다.

PowerShell에서 현재 사용자의 홈 디렉토리를 참조하는 가장 강력한 방법은 내부에 있는 자동 변수를 사용하는 것입니다.

  • $mySourceDir = "$HOME/Projects/svn/myProject/trunk"; Set-Location $mySourceDir
    (Set-LocationPowerShell 제품의cd이와 동등하며, 기본 제공 별칭 정의 덕분에cd하지만 역시.)

  • 명령에 대한 인수로 경로를 전달하는 경우, 다음을 포함하지 않고 빠져나갈 수 있습니다."..."경로에 포함된 문자(예:
    Set-Location $HOME/Desktop

  • Windows 및 Unix 플랫폼 모두에서 작동하지만 다음과 같은 환경 변수를 사용하려는 경우$env:HOME플랫폼 차이가 표면화됩니다.

  • PowerShell에서 정의하는 모든 자동 변수(기본 제공 변수)에 대한 자세한 내용은 개념 도움말 항목(이 문서에서 설명)을 참조하십시오.$HOME윈도우즈 관점만 반영합니다.$HOMEUnix 플랫폼에서도 유사하게 작동합니다.


사용하다~현재 위치가 파일 시스템 위치인 것이 확실한 경우에만:

  • 현재 위치는 PowerShell의 현재 디렉터리에 대한 일반화된 개념입니다. PowerShell은 드라이브의 개념을 일반화하여 정의된 모든 기능(드라이브)의 디렉터리인 Windows 레지스트리와 같은 다른 (일반적으로) 계층적 데이터 저장소를 포함합니다.Function:), 변수(Variable) 또는 환경 변수(Env:).

  • 이러한 각 드라이브는 파일 시스템 [드라이브 공급자]가 하나의 인스턴스에 불과한 드라이브 공급자에 의해 제공됩니다.

  • ~ 드라이브 사양별 개념이므로 사용하기만 하면 됩니다.~드라이브 공급자에 대한 명시적인 참조 없이 현재 위치의 기반이 되는 공급자가 정의한 홈 위치말합니다.

    • 일부 공급자는 다음에 대한 기본값을 제공하지 않습니다.~를 나타내며, 이를 사용하려는 시도가 실패하게 합니다. 예를 들어, 그것은Environment드라이브 공급자 및 그Env:드라이브:
      Set-Location Env:; Set-Location ~오류가 발생합니다.
      Home location for this provider is not set. To set the home location, call "(get-psprovider 'Environment').Home = 'path'
  • 드라이브 공급자가 다음을 해석합니다.~그래서 내부에서도 작동하고,

    • 파일 시스템 위치에서 다음 명령은 모두 동일하게 작동합니다.
      • Set-Location ~/Desktop
      • Set-Location "~/Desktop"
      • Set-Location '~/Desktop'
    • 이를 다음과 같은 POSIX 유사 셸과 비교합니다.bash확장하는 것이 껍질인 곳.~따옴표로 묶지 않은 경우에만 대상 명령이 표시됩니다.

해라

$mySourceDir = "$env:HOME/Projects/svn/myProject/trunk"

언급URL : https://stackoverflow.com/questions/44575585/getting-home-directory

반응형