Вашему второму примеру просто нужно #
в выходной строке, чтобы сгенерировать правильный вывод при запуске вbash
:
cnt=1
for i do
echo "Argument #$cnt = $i"
((cnt++))
done
Обратите внимание, что это обычно не будет работать, если выполняется с /bin/sh
, особенно если /bin/sh
является оболочкой (, подобной dash
), которая не понимает синтаксис ((...))
для арифметических вычислений. Оболочка dash
сгенерирует ошибку cnt++: not found
для приведенного выше кода ((cnt++))
, когда она попытается выполнить строку cnt++
внутри двух наборов вложенных оболочек -. Если вам нужно использовать приведенный выше код, убедитесь, что он выполняется, например. bash
с помощью строки #!/bin/bash
в верхней части скрипта.
Для максимальной переносимости вы должны использовать
count=1
for arg do
printf 'Argument #%d = %s\n' "$count" "$arg"
count=$(( count + 1 ))
done
Это дополнительно позволяет избежать проблем с аргументами, содержащими обратную косую черту, если параметр оболочки xpg_echo
включен в bash
и использует синтаксис POSIX для увеличения счетчика.
Вы используете зеркало http://kali.mirror.garr.it/mirrors/kali
. На данный момент у него есть более старый снимок репозитория Kali Linux. Например, его версия base-files
— 1 :2020.1.0, а в Kali Linux 2020.3 — 1 :2020.3.1. Вот почему сейчас вы не можете выполнить обновление до 2020.3 с вашей конфигурацией.
Согласно вики kali.org , ваш sources.list
должен содержать только хост по умолчанию, который будет автоматически перенаправлять apt
на ближайшее -на -зеркало даты.:
deb http://http.kali.org/kali kali-rolling main non-free contrib
Измените sources.list
на эту строку и повторите попытку.
Этой единственной строки в sources.list
должно быть достаточно. Вы также можете добавить еще одну строку для исходного кода программы , как описано на kali.org . Строки в sources.list
, начинающиеся с deb
, предназначены для предварительно -скомпилированных бинарных пакетов, готовых к запуску. Строки, начинающиеся с deb-src
, предназначены для исходного кода, который вы должны скомпилировать в двоичный файл перед запуском.Если вы задаетесь вопросом, нужно ли вам это, скорее всего, нет. Разница между строками deb
и deb-src
вsources.list
также была объяснена до .