最近 UNIX を使い始めたばかりで、getopts の実装に問題があります。
以下の関数は、ファイルを見つけてごみ箱に削除します。移動後にメッセージを表示する -i を指定して getopts を使用しようとしています。構文は正常に機能しますが、getotps コマンドで while ループを実装すると機能しなくなります。
誰でも有益なアドバイスをいただけますか?
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