Мое интуитивное представление о командах, позволяющих указать рабочий каталог, заключается в том, что это первый параметр. Это у вас правильно, хотя вы можете потерять командный переключатель -i
.
Во-вторых, любые параметры с несколькими значениями (, такие как несколько конкретных подкаталогов -, которые вы хотите искать в ), должны быть последними. Таким образом, они не слишком мешают другим.
Предлагаю назвать вашу команду так:
~$ mycommand /my/root/dir "txt" -sdirs sub1 sub2 sub6
Bash и, возможно, sh
также имеют встроенную функцию shift
, которая позволяет вам переключаться между заданными аргументами. Вы можете извлечь необходимую информацию из командной строки следующим образом:
#!/bin/bash
WORK_DIR="$1"
shift # shifts $2 to $1
FILE_END="$1"
shift
if [ "-sdirs" = "$1" ]; then
shift # get to the sub dirs
while [ -n "$1" ]; do # tests if there is a sub dir
# *do your magic here*
# $1 should be a sub dir
# $WORK_DIR/$1/*$FILE_END for example
# to the next one, break if nothing left
shift || break
done
else
echo "No sub directories specified"
exit 1
fi
Это то, что я бы сделал сразу. Дополнительная обработка ошибок уместна и оставлена читателю в качестве упражнения.
Вы путаете info
с less
и другими пейджерами. info
не использует внешний пейджер и не реализует тот же набор привязок клавиш, что и less
и другие пейджеры. Чтобы перейти к следующему вхождению строки, нажмите Control-xn или используйте другие сочетания клавиш как описано в информация руководство . Также,п и н используются для совершенно разных целей:
n (next-node)
C-NEXT (on DOS/Windows only)
Select the ‘Next’ node.
The NEXT key is known as the PgDn key on some keyboards.
p (prev-node)
C-PREVIOUS (on DOS/Windows only)
Select the ‘Prev’ node.
The PREVIOUS key is known as the PgUp key on some keyboards.