Bash получить длину массива со смещением

airmon-ng check kill
ifconfig wlan0 up
wpa_passphrase "essid" "password" > /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant -B -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0
dhclient wlan0

Таким образом можно подключиться через терминал

0
15.09.2019, 23:54
1 ответ

${var:2}также является расширением подстроки, оно расширяется до значения $varс удалением первых двух символов. Имея это в виду, ${#array[@]:2}кажется немного двусмысленным, если сначала выбрать два элемента из массива, а затем взять длину; или он должен сначала взять длину, а затем убрать первые два символа из этого числа?

Последнее, возможно, глупо, но тогда и первое тоже не нужно, так как можно просто вычесть два из полной длины массива.

Как бы то ни было, ksh также не поддерживает ${#array[@]:2}. Поскольку многие функции Bash изначально взяты из ksh, это также может быть причиной того, что Bash не поддерживает это. С другой стороны, Zsh обрабатывает ${#array[@]:2}, он дает длину массива минус 2 (, то есть 3, которые вы ожидали в примере ).

0
28.01.2020, 03:17

Теги

Похожие вопросы