firewall-cmd 命令中的变量

Variable in firewall-cmd command

我正在尝试在 Bash 中编写一个脚本来添加一些防火墙规则。

我传递的变量不起作用,我想我替换错了。

firewall-cmd --add-rich-rule='rule family="ipv4" source address="$IP/32" port port=10000 protocol=tcp accept'

Returns

Error: INVALID_ADDR: $IP/32

这里有什么问题,我该如何解决?

您将整个字符串用单引号引起来,因此您传递的是文字字符串 $IP。您可以通过在变量前添加一个右单引号并在其后添加一个新的单引号来临时打破单引号。

firewall-cmd --add-rich-rule='rule family="ipv4" source address="'$IP'/32" port port=10000 protocol=tcp accept'