UNIX основные проблемы с getopts
Я только недавно начал использовать UNIX и у меня возникли проблемы при попытке реализовать getopts.
Функция ниже находит файл, а затем удаляет его в корзину, но я пытаюсь использовать getopts с -i, который будет отображать сообщение после его перемещения. Синтаксис работает нормально, но когда я реализую цикл while с помощью команды getotps, он больше не работает.
Кто-нибудь может дать мне какой-нибудь полезный совет, он был бы очень признателен
function moveToBin(){
while getopts i opt
do
case $opt in
i) echo "file removed!" ;;
esac
done
if [[ -e $1 ]]; then
inode=$(ls -i $i | cut -d " " -f1)
name=$1_$inode
pathOfFile=$(pwd $1)
restoreEntry=$1_$inode:$pathOfFile/$1
mv $1 ~/deleted
mv ~/deleted/$1 ~/deleted/$name
echo "Before extension code"
extension=$(find ~ -inum $inode)
fi
1 ответ
while getopts ...; do
...
done
getopts проанализирует параметры и их возможные аргументы. Он прекратит синтаксический анализ первого неопционального аргумента (строка, которая не начинается с дефиса (-
) это не аргумент для любого варианта перед ним). Он также прекратит синтаксический анализ, когда увидит --
(двойной дефис), что означает конец опций.