Я запускаю Arch Linux и пишу сценарии в Da sh.
У меня есть фиктивный сценарий, который выводит все переменные, которые я установил с помощью параметров. Я следовал руководству, в котором рекомендовалось вводить данные таким образом. Ссылка на статью
while [ ! -z "$1" ]; do
case "$1" in
--param|-p)
shift
#code
;;
--other-param|-op)
shift
# code
;;
esac
shift
done
В приведенной ниже MRE ввод параметра -e
приводит к ошибке «сдвиг: невозможно сдвинуть так много» в строке shift
внутри этого код параметра. Он согласован, и я понятия не имею, что это означает.
Почему возникает эта ошибка?
Мой сценарий MRE работает da sh как оболочка и выглядит следующим образом:
#!/bin/dash
while [ ! -z "$1" ]; do
case "$1" in
-e)
shift
echo "Error right about..."
;;
esac
shift
done
Вывод ./mre.sh -e
Error right about...
./mre.sh: 32: shift: can't shift that many