.
source
私は(または同等の)組み込み関数の動作の違いを確認しようとします。私はEl Capitanでbash 3.2を使用しています。 ~によると文書POSIXモード()を設定すると、.txtを含まないファイル名を発行したときにset -o posix
シェルが現在のディレクトリから検索するのを防ぐ必要があります。.
/
私はmyscript.sh( "Hello"をエコーする)と同じtmpディレクトリにあります。
MacBook:tmp simone$ set | grep SHELLOPTS
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
MacBook:tmp simone$ . myscript.sh
Hello
MacBook:tmp simone$ set -o posix
MacBook:tmp simone$ set | grep SHELLOPTS
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor:posix
MacBook:tmp simone$ . myscript.sh
Hello
現在のディレクトリのスクリプトは、POSIX設定とは無関係に実行されているようです。私が何かを間違って理解したのでしょうか、それとももう少し微妙な説明がありますか?
コメントで指摘されているように、.
PATHにない場合は、動作は説明されているようにする必要があります。私のPATH変数には、次の文字列が含まれています。
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
答え1
これはバグであり、その後のリリースで修正されました。 ~からバッシュ変更ログ:
この資料では、bash-4.0-alphaのバージョンと以前のバージョンであるbash-3.2-releaseの間の変更について詳しく説明します。 (…)
1. Bashの変更点(...)
ggg。 Posixモードで実行されているシェルが/引数
$PWD
で指定されたsource
ファイルを見つけることができない場合にそれを検索させるバグを修正しました。 (…).
$PATH
$PATH
3. /parameters が含まれているにもかかわらず、シェルにそれを検索させるバグを修正しました。source
.
/