問題タブ [shopt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - 非対話型Bashシェルのエイリアスが機能しない理由
非対話型のbashシェルでエイリアスを使用しようとしています。でエイリアスを定義し~/.bashrc
、変数を設定しましたBASH_ENV=~/startUpFile
。startUpFileの内容はsource ~/.bashrc
です。
コマンドを実行すると、エイリアスが認識されていることがわかりますalias
。ただし、で定義されたエイリアスを使用しようとすると~/.bashrc
、Bashはそれを認識できません。不明なコマンドエラーが発生します。
TCSHシェルを使用すると、~/.cshrc
ファイルが常に読み取られるため、これを行うのは非常に簡単です。
Bashシェルでこれを行う方法はありますか?
bash - 現在のディレクトリ内のすべてのファイルに再帰的に展開されるものは何ですか?
**/*.ext
一致するすべてのサブディレクトリ内のすべてのファイルに展開されることは知っていますが、現在のディレクトリ*.ext
内のそのようなすべてのファイルも含む同様の展開とは何ですか?
bash - expand_aliases を有効にすることができません
expand_aliases を bash で有効にすることができません。いろいろ試してみましたが、何もうまくいきません。
簡単なテストケースは次のとおりです。
そして出力:
(はい、bash に -O オプションの代わりに shopt を使用しています。これは、それが行われていることを証明するためです。)
何か案は?
linux - ネストされたすべてのディレクトリの下にあるすべてのファイルをシェルグロブで照合します
シェルグロブを使用してネストされたディレクトリを識別する方法はありますか?
したがって、dir / dir1 / dir2 / dir3 / dir4 / dir5 / ..があり、それらすべての下にファイルがある場合、すべてのディレクトリの下のすべてのファイルに一致する同等のグロブパターンは、次のようになります。ls -R
bash - ash には bash の「nullglob」オプションに相当するものがありますか?
glob パターンがどのファイルとも一致しない場合はbash
、リテラル パターンを返します。
シェル オプションを設定することでデフォルトの動作を変更できるため、nullglob
一致するものがない場合は null 文字列が返されます。
に同等のオプションはありますash
か?
bash - shopt -s dirspell は何をしますか?
私はそれを理解することができません.shopt -s cdspellは理解していますが、shopt -s dirspellが何をするのかわかりません.
Bashリファレンスガイドには次のように書かれています:
ダースペル
設定されている場合、最初に指定されたディレクトリ名が存在しない場合、Bash は単語補完中にディレクトリ名のスペル修正を試みます。
いくつかのディレクトリで数回試しましたが、それは動作ではありません。
i386-apple-darwin10.7.0 で bash 4.2.10(2) を使用しています
bash - 1つのグロブにnullglobを設定する簡単な方法はありますか
bashでは、これを行うと:
必要に応じてゼロではなくarray
、1つの要素が含まれていることがわかります。"/tmp/empty/*"
ありがたいことに、これは、を使用してnullglobシェルオプションをオンにすることで回避できます。shopt -s nullglob
ただし、nullglobはグローバルであり、既存のシェルスクリプトを編集すると、問題が発生する可能性があります(たとえば、誰かがの終了コードls foo*
をチェックして、「foo」で始まる名前のファイルがあるかどうかを確認しましたか?)。したがって、理想的には、小さなスコープ、理想的には1つのファイル名拡張に対してのみオンにします。を使用して再びオフにすることができますがshopt -u nullglob
、もちろん、以前に無効にされた場合に限ります。
もっと良い方法があるに違いないと思います。もちろん、変数の代入はサブシェルで終了するため、明らかな「サブシェルに入れる」は機能しません。オースティングループがksh93構文をインポートするのを待つ以外にありますか?
bash - ショップをローカルに変更して機能させる
nocasematch
オプションの呼び出し元の設定を変更せずに使用するbash関数を作成しようとしています。関数の定義は次のとおりです。
私がそれを呼ぶ前に:
あれを呼べ:
予想どおりですがnocasematch
、発信者の変更は次のとおりです。
オプションを関数に対してローカルに変更する簡単な方法はありますか?
の戻り値を確認できることはわかっていますshopt -q
が、それでも関数はこれを記憶し、終了する前にリセットする必要があることを意味します。
bash - バッシュショップ xpg_echo
xpg_echo
ショップが有効または無効になった場合に何が変わるのかわかりません。
マニュアルでは:
xpg_echo を有効化/無効化しようとしましたが、echo は同じ動作をします。