Сейчас проблема заключается в том, что ваша Ubuntu установлена с поддержкой BIOS, а поскольку Windows 8 использует поддержку EFI, вам нужно сделать их одинаковыми, чтобы использовать их в двойной загрузке.
Это официальный сайт Ubuntu. документация по UEFI
В основном вам нужно сделать следующее:
Вам не нужен фиктивный массив. Вы можете использовать переменную счетчика:
indexof() {
search="$1"; shift
i=0
for arg; do
[ "$search" = "$arg" ] && return $i
((i++))
done
return -1
}
Обратите внимание, что для arg; do
по умолчанию использует "$ @"
, поэтому в "$ @"
можно опустить.
Вместо этого можно использовать форму 'arithmetic-for':
indexof(){ search=$1; shift
for(( i=1; i<=$#; i++ )); do [[ $search == ${!i} ]] && return $i; done
return -1 # as an old LISPer I'd prefer 0 for the notfound case
}
Не особенно лучше (IMO), но отличается.
Для записи, в zsh
функциональность indexOf соответствует:
$ set foo bar baz bar foo
$ echo $@[(i)bar] $@[(I)bar]
2 4
($2
— это первое совпадение (с использованием i
флага нижнего индекса ), $4
последнее совпадение(I
флаг нижнего индекса )).