Bash

準備在變數中包含引號字元串的參數

  • November 18, 2018

在 Bash 腳本中,我在幾個地方呼叫了這樣的程序:

numfmt --suffix=" B" --grouping 231210893

每次數字不同,但其他參數保持不變。

我現在想將其他參數從許多不同的呼叫中移出,以便集中定義它們並且可以輕鬆更改。我的嘗試是這樣的:

NUMFMT='--suffix=" B" --grouping'
...
numfmt $NUMFMT 231210893

不幸的是,這不起作用。引號在某些時候被刪除,並numfmt抱怨一個無法解釋的額外參數B。我嘗試了很多其他版本,在定義和使用中都使用了其他引號NUMFMT,但無濟於事。

我該如何正確地做到這一點?如果它不是太複雜,我也想了解為什麼我的版本不起作用並且(希望)另一個版本起作用。

嘗試數組:

NUMFMT=( --suffix=" B"   '--grouping' )
....
numfmt "${NUMFMT[@]}" 231210893

這不是一個很好的案例alias嗎?

$ alias nfmtB='numfmt --suffix=" B" --grouping'
$ nfmtB 324235345656
324.235.345.656 B

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