Я собираюсь ответить на самую общую часть вашего вопроса: «Я новичок в сценариях Linux и пытаюсь понять это».Я делаю это, потому что мне кажется, что ты в самом начале;главное, что мне подсказывает, это то, что вы используете и $1
, $2
и т. д. и shift
.
Сравните эти два сценария:
Первый скрипт:
FIRST=$1
shift
SECOND=$2
shift
THIRD=$3
shift
echo $FIRST
echo $SECOND
echo $THIRD
Если я запускаю это с ./scriptname.sh 1 2 3
, я получаю вывод:
1
3
# a blank line
Второй скрипт:
FIRST=$1
SECOND=$2
THIRD=$3
echo $FIRST
echo $SECOND
echo $THIRD
Если я запускаю это с ./scriptname.sh 1 2 3
, я получаю вывод:
1
2
3
Другими словами, shift
не является необходимым и фактически мешает.Вам нужно использовать shift
только тогда, когда вы делаете что-то вроде этого:
FIRST=$1
shift
SECOND=$1
shift
THIRD=$1
shift
... или, чаще, читая $1
несколько раз внутри цикла.
Вотдействительно хороший ресурс для изучения сценариев оболочки:
http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
Это поможет вам с самого начала, и я все еще считаю его очень ценным ресурсом даже после 25+годы сценариев оболочки.
Хотя это не отвечает на ваш конкретный вопрос, я чувствую, что вам нужно более основательное основание, которое является предварительным к вашей заявленной цели.Я твердо убежден, что это поможет вам в достижении более широкой цели - изучения сценариев оболочки.Если вы внимательно прочитаете вышеприведенное Руководство для начинающих пользователей Bash, вы скоро найдете способ (или несколько способов!) Написать сценарий поиска / перемещения файлов, о котором вы конкретно спрашивали.
HTH.