#!/bin/ksh
high () echo High
medium () echo Medium
low () echo Low
none () echo None
set -A array low medium none high
for level in high medium low none; do
for elem in "${array[@]}"; do
if [ "$elem" = "$level" ]; then
"$level"
break 2
fi
done
done
Это двойная петля. Внешний цикл проходит по уровням в порядке важности. Внутренний цикл перебирает элементы массива в поисках элемента, равного текущему уровню.
Если найден элемент, соответствующий текущему уровню, вызывается функция с тем же именем, что и у уровня, и происходит выход из двух циклов.
Обратите внимание, что в общем случае вы бы хотели зациклиться на "${array[@]}"
, а не на ${array[*]}
, так как использование[*]
(и оставление расширения без кавычек )приведет как к разбиению слов, так и к подстановке имен файлов в строках в массив. Выражение "${array[@]}"
расширится до отдельных элементов массива array
, заключенных в кавычки.
Избегание разделения слов и подстановки имен файлов также является причиной цитирования $elem
и $level
при их сравнении и т. д.
Возможно, более быстрый способ сделать это — сначала создать ассоциативный массив с элементом из массива в качестве ключей, а затем просто выполнить поиск по ключу в этом:
#!/bin/ksh
high () echo High
medium () echo Medium
low () echo Low
none () echo None
array=( low medium none high )
typeset -A lookup
for elem in "${array[@]}"; do
lookup["$elem"]=1
done
for level in high medium low none; do
if [ -n "${lookup[$level]}" ]; then
"$level"
break
fi
done
Это позволяет избежать двойного цикла, который был бы полезен, если либо массив, либо номер уровня, либо и то, и другое очень длинные.
Я также переключился на более распространенную =(...)
форму присваивания для массивов.
Основное различие заключается внутри или снаружи компьютера. Нахождение внутри кажется волшебным. Однако никакие магические силы не предоставляются. Другое отличие заключается в том, как подключен USB или SATA. Все это может влиять на скорость, в зависимости от версии USB и SATA.
Есть несколько машин, которые не загружаются с USB (, вероятно, их трудно найти, так как это необходимо для установки новой системы ).
USB-накопитель может выходить из строя быстрее, чем внутреннее устройство (, но все зависит от устройства ). Почти все устройства SSD имеют ограниченное количество операций записи. Но это применимо только в том случае, если в качестве USB-накопителя используется SSD (. Возможно, вы используете жесткий диск ).
Внешне подключенные устройства более подвержены физическим проблемам :, например. будучи отключенным.
Если вы часто используете его на одном и том же компьютере и не используете внутреннюю память. Тогда наверное стоит установить на это внутреннее хранилище. Вы можете использовать gparted
, чтобы уменьшить раздел MS -Windows и создать новый раздел для вашего Gnu/Linux.
Чинело.
Загрузочная флешка используется, чтобы проверить, как работает Linux на вашем компьютере, и все ли в порядке. Загрузка медленная. Он работает как установленная система Linux, но работа, которую вы проделали с ним, не будет сохранена на жестком диске. Но вы можете использовать опцию сохранения. Многие люди не знают об этом.