pushdコマンドは、パラメーターを区別しないものとして扱います。

pushdコマンドは、パラメーターを区別しないものとして扱います。

pushd大文字と小文字を区別しないようにするにはどうすればよいですか?役に立たなかった

$ shopt -s nocasematch ; pushd pdf

bash: pushd: pdf: No such file or directory

正しい案内を手伝ってください。ありがとうございます。

答え1

使用nocasematch:

一致するケースはありません。

設定されている場合、Bashは一致を実行するときに大文字と小文字を区別せずにパターンを一致させます。Caseまたは[[条件付きコマンドを実行するとき、パターン置換拡張を実行するとき、またはプログラム可能な完了の一部として可能な完了をフィルタリングするとき。


推奨されませんが、いくつかの重要な注意事項があるかもしれません。 1つの技術は、をnocaseglob使用して関数を作成し、対応するソースコードを取得することです。

グローバルケースなし

設定すると、Bashはファイル名拡張を実行するときに大文字と小文字を区別せずにファイル名を一致させます。

たとえば、ここではnocaseglobを設定し、Witchは大文字と小文字に関係なくglobを拡張します。

引数が与えられるとpdfグローバル化pdf*され、両方とも同じ長さであればプッシュされます。その後、リセットnocaseglob

nocasepush() {
    local g
    g=$(shopt -p nocaseglob)
    shopt -s nocaseglob
    for d in "$1"*; do
        if [ ${#d} -eq ${#1} ]; then
            pushd "$d"
        fi
        break
    done
    $g
}

次にdonocasepush pdfを入力する必要がありますPDF

関連情報