Bash

Bash echo $-1 列印 hb1。為什麼?

  • June 23, 2019

如果我讓 bash 回顯第 -1 個參數,它會列印 hb1:

echo $-1
hb1

為什麼?它在訪問什麼?

您不是要求它列印第一個參數,那就是:$1

你要的是一個特殊的參數

-

> > ( $-, 一個連字元。) 擴展為呼叫時指定的目前選項標誌,由 set 內置命令,或由 shell 本身設置的那些(例如 -i 選項)。 > > >

所以你的選擇是:hb

然後您會看到1您添加的內容隨後被列印(因此hb1)。


如果您正在尋找最後一個參數(不確定這是否是您所說的 -1 參數),您可以使用以下形式的Shell 參數擴展:

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

引用自:https://unix.stackexchange.com/questions/526419