我想使用脚本中的位置参数将信息传递给命令,但它不起作用。是否可以通过参数扩展实现?
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)
你就是在表演命令替换所以它试图执行名为4
which 可能不存在的命令。
大括号通常是必需的对于这种情况下的其他类型的参数,因为它们将阻止任何尾随相邻文本被视为变量名称的一部分。
例如:
$ var=good
$ varg=bad
$ echo "$varg"
bad
$ echo "${var}g"
goodg