我有一个数组是这样的:检查数组内容
declare -A ignoreList='(
[21]="1"
[22]="1"
[25]="1"
[53]="1"
[80]="1"
[143]="1"
[587]="1"
[990]="1"
[993]="1"
[443]="1"
[2008]="1"
[10011]="1"
[30033]="1"
[41144]="1")'
现在我要检查,如果在阵列ignoreList变量$ SSH_PORT。
的变量$ SSH_PORT是这样的: SSH_PORT = “443”
如果我试试这个:
if [[ -v ignoreList[$SSH_PORT] ]]; then
echo "$SSH_PORT is known"
exit 1
else
echo "$SSH_PORT is not known"
exit 1
fi
我得到这个终端:
443 is not known
但端口443是众所周知。
所以我尽量 SSH_PORT = “500”(不知道)
并运行该脚本:
500 is not known
他DIT比不上
如果我试试这个:
if [[ ${ignoreList[$SSH_PORT]} == 1 ]] ; then
echo In the list.
fi
它也没有工作
我的Bash的版本是4.3
〜#的bash --version GNU的bash,版本42年3月4日(1)-release(x86_64的未知-Linux的GNU) 版权所有(C)2013 Free Software Foundation,Inc. 许可证GPLv3 +:GNU GPL版本3或更高版本http://gnu.org/licenses/gpl.html
这是免费软件;你可以自由改变和重新分配它。 在法律允许的范围内,不存在任何担保。
什么在'$ SSH_PORT'? – 123
这是一个变种包含至极:SSH_PORT = “500” –