gpt4 book ai didi

Linux删除脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:15 32 4
gpt4 key购买 nike

我编写了一个 shell 脚本(称为 Trash.sh),当它运行时会显示我的“垃圾箱”目录中的所有文件,并询问用户是否希望逐一删除每个文件。脚本如下:

#if directory is empty, display message
if test ! -f ~/dustbin/*
then
echo "Directory is empty"
#if directory is not empty, then display each item and ask to delete
else
for resfile in ~/dustbin/* #for each file in directory, store it in resfile variable
do
if test -f $resfile ; then #if a file exists
echo "Do you want to delete $resfile?"
echo "Enter y or n"
read ans #store user input in ans variable
if test $ans = y ; then
rm $resfile
echo "File $resfile was deleted"
fi
fi
done
fi

这对我来说很好用。当用户键入 sh Trash.sh 时,脚本将正常运行,将显示每个文件并询问用户是否删除它。但是,我想添加的是用户键入 sh Trash.sh -a 的选项,目录中的所有文件无需确认即可自动删除。

我对如何实现这一点有点困惑。有什么想法吗?

ps - 我正在使用 Mac OS X 10.6.4 并通过终端执行所有操作

最佳答案

我建议使用 getopts 捕获 -a 选项。然后稍后对其进行测试并使用 rm -f (强制执行,请参见手册页)。 Mac OS 上的 shell 与我习惯的有点不同,但在 Linux 上处理 bash 中的选项看起来像这样:

force_all='f';
while getopts "ahv" arg
do
case $arg in
a) force_all='t';;
v) echo "$SCRIPT: $VERSION"; exit;;
h|*) echo "$SCRIPT: $HELP"; exit;;
esac
done

这个例子展示了如何实现 -v 版本和 -h 帮助。

关于Linux删除脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154573/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com