ディレクトリ名の無効なオプション `b`

ディレクトリ名の無効なオプション `b`

このエラーが発生するのはなぜですか?このset.confを取得しようとしています。

user@connect:~/testenv$ source $(cd $(dirname $0) && pwd)"/set.conf"
dirname: invalid option -- 'b'
Try 'dirname --help' for more information.
-bash: /home/tempuser/set.conf: No such file or directory

コマンドプロンプトに--$ 0を追加してみましたが、うまくいきました。これをスクリプトでどのように実行できますか?

答え1

$0スクリプトの中にはスクリプト名があります。

プロンプトでは、これはシェルの名前で、おそらく-bashあなたの場合です。

dirname先行ダッシュを-bサポートしていないコマンドラインオプションを導入すると考えます。

  1. メッセージが表示されると、使用するコードは機能しません。ファイルに貼り付けてファイルを実行できます。
  2. 一度試してみてください。ほとんどのコマンドを使用すると、後続のすべての項目をオプションではなく引数として扱うようにdirname -- $0作成できます。--この場合、問題は解決されませんが、問題が何であるかがより明確になります。

関連情報