Bash echo $-1 は hb1 を印刷します。なぜ? [コピー]

Bash echo $-1 は hb1 を印刷します。なぜ? [コピー]

bashに-1番目の引数をエコーするように要求すると、hb1が印刷されます。

echo $-1
hb1

なぜ?何にアクセスしていますか?

答え1

最初の引数を印刷するように要求するものではありません$1

あなたが要求した特殊パラメータ:

-

$-ハイフン)呼び出し時には、set組み込みコマンドを介して、またはシェル自体(-iオプションなど)で指定された現在のオプションフラグに展開されます。

したがって、あなたのオプションは次のとおりです。hb

1これにより、追加した内容が印刷されることがわかります(それでhb1)。


最後のパラメータを探している場合(-1パラメータが何を意味するのかわからない)、次のものを使用できます。シェルパラメータ拡張形式は次のとおりです。

$ set -- one two three
$ echo "${@: -1}"
three

関連情報