web-dev-qa-db-ja.com

ベース名「$ 0」が機能しない

私はこのコマンドを持っています:

 base_name="$(basename "$0")";

そして私はこのエラーを受け取ります:

ベース名:不正なオプション-b

使用法:ベース名文字列[サフィックス]ベース名[-a] [-sサフィックス]文字列[...]

誰かがそれで何が起こっているのか知っていますか?

2
Alexander Mills

私の幸運な推測では、$0には文字列-bashが含まれているため、コマンドは次のようになります。

basename -bash

これはbasenameが1文字のオプション「b」として解釈します。これを次のように変更します。

base_name="$(basename -- "$0")";

... basenameがオプションの検索を停止するように指示されるようにします。

7
Jeff Schaller