Процедура сдвига корпуса - что это?
В оболочке у нас есть сдвиг команды, но я видел в каком-то примере его передачу shift 3
Почему после смены номера? и о чем это? что он делает?
Пример:
echo "arg1= $1 arg2=$2 arg3=$3"
shift
echo "arg1= $1 arg2=$2 arg3=$3"
shift
echo "arg1= $1 arg2=$2 arg3=$3"
shift
echo "arg1= $1 arg2=$2 arg3=$3"
shift
Выход будет:
arg1= 1 arg2=2 arg3=3
arg1= 2 arg2=3 arg3=
arg1= 3 arg2= arg3=
arg1= arg2= arg3=
Но когда я добавляю это, он не отображает его правильно.
Ответы
Ответ 1
Взгляните на страницу man, в которой говорится:
shift [n]
The positional parameters from n+1 ... are renamed to $1 ....
If n is not given, it is assumed to be 1.
Пример script:
#!/bin/bash
echo "Input: [email protected]"
shift 3
echo "After shift: [email protected]"
Запустите его:
$ myscript.sh one two three four five six
Input: one two three four five six
After shift: four five six
Это показывает, что после сдвига на 3, $1=four
, $2=five
и $3=six
.
Ответ 2
вы используете man bash
, чтобы найти встроенную команду shift
:
shift [n]
Позиционные параметры из n + 1... переименованы в $1.... Параметры, представленные числами $# до $# - n + 1, равны снята с охраны. n должно быть неотрицательным числом, меньшим или равным $#. Если n равно 0, параметры не изменяются. Если n не задано, предполагается, что 1. Если n больше, чем $#, то позиционный параметры не изменяются. Статус возврата больше, чем ноль, если n больше, чем $# или меньше нуля; иначе 0.
Ответ 3
На это можно ответить, просто прочитав Bash manual или набрав man shift
:
shift [n]
Сдвиньте позиционные параметры влево на n. Позиционный параметры из n + 1... $# переименовываются в $1... $# - n. параметры представленные цифрами $# to $# - n + 1, не заданы. n должно быть неотрицательное число, меньшее или равное $#. Если n равно нулю или больше чем $#, позиционные параметры не изменяются. Если n не, предполагается, что он равен 1. Возвращаемое состояние равно нулю, если n не является больше, чем $# или меньше нуля, в противном случае ненулевое.
Ответ 4
Сдвиньте позиционные параметры влево на n. Позиционные параметры от n + 1... $# переименовываются в $1... $# - n. Параметры, представленные числами $# to $# - n + 1, не заданы. n должно быть неотрицательным числом, меньшим или равным $#. Если n равно нулю или больше $#, то позиционные параметры не изменяются. Если n не поставляется, предполагается, что оно равно 1. Возвращаемое состояние равно нулю, если n больше, чем $# или меньше нуля, в противном случае - ненулевое значение.