我正在浏览一个bash脚本,我无法理解这句话无法搜索它:
IPV=${IPTABLES%tables}
这句话意味着什么?
答案 0 :(得分:2)
这是参数替换的一个例子(与数学运算符无关)。这里还有更多示例:http://tldp.org/LDP/abs/html/parameter-substitution.html
$ {var%Pattern}从$ var中删除与$ var的后端匹配的$ Pattern的最短部分。
$ {var %% Pattern}从$ var中删除与$ var的后端匹配的$ Pattern的最长部分。
例如:
$ export IPTABLES=footables
$ echo ${IPTABLES%tables}
foo
答案 1 :(得分:1)
显示${IPTABLES%table}
的变量称为参数,%
是参数修饰符。
此“set”中有4个基本参数修改器
${var#str*x} # removes str and the shortest match to x from left side of variable's value
${var##str*x} # removes longest match of str and everything to the farthest x
${var%str} # removes str from the right side of the variable's value
${var%x*str} # removes shortest match of x*str from the right side
${var%%x*str} # removes longest match of x*str from right side
所以${var#X}
和${var##X}
计为2,${var%X}
,${var%%X}
再计算2。
还有其他一些,取决于版本和bash,vs ksh,vs zsh
所以玩
var=abcxstrxyz
echo ${var%#str}
echo ${var%str*}
echo ${var%%str}
echo ${var%%str*}
等,以了解这可以做些什么。
IHTH