つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

クロスプラットフォーム対応PowerShellでの大文字小文字の区別

 Zorin OS に PowerShell V7をインストールして、あれこれと試しています。
 PowerShell V5までは、Windows PowerShell という名称でWindows専用でした。それが、PowerShell V6以降は、頭に付いていた文字Windowsが外れて、単に PowerShell という名称に変わりました。V6以降は、クロスプラットフォーム対応となったためです。
 WindowsとLinuxでのPowerShellは、基本的な挙動は同じです。
 けれども、OSに依存する細かな違いは、やっぱりあります。そのうちの一つが、パスの表記における大文字と小文字の区別です。
 Windows では、大文字小文字を区別しないで動作するのに対し、Linuxはそれを区別するので、パス表記で挙動が異なります。
 Get-ChildItemコマンドレット実行で、試してみます。

Windows
【1】Get-ChildItem C:\Users\USER3\Documents
【2】Get-ChildItem c:\users\user3\documents

Zorin OS
【3】Get-ChildItem /home/hoge/ドキュメント
【4】Get-ChildItem /Home/Hoge/ドキュメント

 Windowsでは大文字と小文字が同一視されて、【1】でも【2】でも動作します。それに対し、Linuxでは大文字と小文字は区別されるから、【3】は動作するのに対し、【4】では「cannot find path」のエラーが出ます。

PowerShellでの大文字小文字の区別

 ただし、上記の大文字・小文字の区別は、環境変数やパスの表記といった、OSに依存するごく限定的な場面で起きる事象です。
 例えば、次のPowerShellスクリプトを実行すると、WindowsでもLinuxでも挙動は同じで、両方とも実行結果は「左右、等しい」と出てきます。つまり、大文字小文字を区別せず、両者を同一視します。

PowerShellスクリプト例
$a = "hogehoge";$b = "HogeHoge"
if ($a -eq $b)
{
    Write-Host "左右、等しい"
}
else
{
    Wite-Host "左右、異なる"
}

それではまた次の記事で。
   goosyun