我想删除我的数组中的最后一个条目,我想让数组告诉我,当我使用$ {#array [@]}时,它有一个少的条目。这是我目前使用的行:
unset GreppedURLs[${#GreppedURLs[@]} -1]
请纠正我,告诉我正确的方法。
你的答案是(几乎)正确
for non-sparse indexed arrays¹:
unset 'arr[${#arr[@]}-1]'
(注意单引号:它们阻止扩展路径名)。
演示:
arr=( a b c ) echo ${#arr[@]}
3
for a in "${arr[@]}"; do echo "$a"; done
06003
unset 'arr[${#arr[@]}-1]' for a in "${arr[@]}"; do echo "$a"; done
06005
妙处
echo ${#arr[@]}
06007
(GNU bash,版本4.2.8(1)-release(x86_64-pc-linux-gnu))
¹@Wil提供了一个适用于各种阵列的excellent answer