1

我最近才开始使用 UNIX,但在尝试实现 getopts 时遇到了问题。

下面的函数找到一个文件,然后将其删除到回收站,尽管我正在尝试将 getopts 与 -i 一起使用,它会在移动后显示一条消息。语法工作正常,但是当我使用 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
4

1 回答 1

1
while getopts ...; do
  ...
done

getopts 将解析选项及其可能的参数。它将停止解析第一个非选项参数(不以连字符 ( -) 开头的字符串,该字符串不是前面任何选项的参数)。--当它看到(双连字符)时,它也会停止解析,这意味着选项结束。

于 2013-09-15T16:32:10.530 回答