我最近刚开始使用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发布于 2013-09-16 00:32:11
while getopts ...; do
...
donegetopts将解析选项及其可能的参数。它将在第一个非选项参数(不是以连字符(-)开头的字符串,它前面的任何选项都不是参数)上停止解析。当它看到-- (双连字符)时,它也会停止解析,这意味着选项的结束。
https://stackoverflow.com/questions/18814406
复制相似问题