使用 linux 命令扩展 bash

使用 linux 命令扩展 bash

我想使用脚本中的位置参数将信息传递给命令,但它不起作用。是否可以通过参数扩展实现?

lvresize -r -L 4G /dev/mapper/vol-opt

lvresize -r -L "$($2)G" "$opt"

$2(的值为4

答案1

如果你的第二个位置参数是4你会想像这样传递它:

lvresize -r -L "$2G" "$opt"

不过我建议使用牙套只是为了清洁

lvresize -r -L "${2}G" "$opt"

目前还不清楚如何opt设置,但我假设你已经处理好了。


当你写作的时候,$($2)你就是在表演命令替换所以它试图执行名为4which 可能不存在的命令。


大括号通常是必需的对于这种情况下的其他类型的参数,因为它们将阻止任何尾随相邻文本被视为变量名称的一部分。

例如:

$ var=good
$ varg=bad
$ echo "$varg"
bad
$ echo "${var}g"
goodg

相关内容