准备变量中包含带引号的字符串的参数

准备变量中包含带引号的字符串的参数

在 Bash 脚本中,我在几个地方调用这样的程序:

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

每次的数字都不同,但其他参数保持不变。

我现在想将其他参数移出许多不同的调用,因此它们是集中定义的并且可以轻松更改。我的尝试是这样的:

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

不幸的是,这不起作用。引号在某些时候被删除,并numfmt抱怨无法解释的额外参数B。我尝试了很多其他版本,在定义和使用中都使用了其他引号NUMFMT,但都无济于事。

我该如何正确地做到这一点?如果不是太复杂,我还想了解为什么我的版本不起作用,而(希望)另一个版本可以。

答案1

尝试数组:

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

答案2

这难道不是一个很好的案例吗alias

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

相关内容