Linux 查看并从列表中选择要删除的文件
我有一堆图形保存为png文件。其中大多数不是很有用,但有些很有用 我想写一个脚本,每次显示一个,然后等待我点击y或n。如果我点击n,删除它。如果没有,请转到下一个 我遇到了两个问题 首先,feh打开一个新窗口,所以我必须将tab键切换回shell,以便按y或n键。是否可以让bash监听任何按键,包括不同窗口中的按键 第二,我试图使用read来监听字符,但它说-n不是一个有效的选项。不过,同样的线路在航站楼也能正常工作 你知道怎么做吗? 谢谢你的帮助Linux 查看并从列表中选择要删除的文件,linux,bash,Linux,Bash,我有一堆图形保存为png文件。其中大多数不是很有用,但有些很有用 我想写一个脚本,每次显示一个,然后等待我点击y或n。如果我点击n,删除它。如果没有,请转到下一个 我遇到了两个问题 首先,feh打开一个新窗口,所以我必须将tab键切换回shell,以便按y或n键。是否可以让bash监听任何按键,包括不同窗口中的按键 第二,我试图使用read来监听字符,但它说-n不是一个有效的选项。不过,同样的线路在航站楼也能正常工作 你知道怎么做吗? 谢谢你的帮助 #! /bin/sh
#! /bin/sh
FILES=./*.png
echo $FILES
for FILE in $FILES
do
echo $FILE
feh "$FILE" &
CHOICE="none"
read -p "d to delete, any other key to keep: " CHOICE -n 1 -s
killall feh
if [$CHOICE -eq "d"]
then
rm $FILE
fi
done
这可能与您的问题无关,但您的脚本设置为使用
/bin/sh
(POSIX shell)执行,但您可能使用/bin/bash
作为交互式终端shell<代码>读取根据您使用的shell的不同处理方式:
下面是一个read
命令三个不同shell的输出;在我的系统中,dash
外壳用于/bin/sh
,但为了确保它在被称为sh
和dash
时处理相同的问题,我已经用每个名称运行了两次:
$bash
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
bash:读取:“-n”:不是有效的标识符
$exit
$dash
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
读取:1:-n:错误的变量名
$
$pdksh
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
pdksh:读取:-p:无协进程
$$sh
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
读取:1:-n:错误的变量名
$
$
我不想从你的编程项目中获得乐趣,但是如果你只是想完成这项任务,qiv
图像查看器提供了一个非常方便的d
键绑定,可以将图像移动到.qiv trash/
目录中。运行qiv-fmt*
并快速处理无用的图像。刚刚发现feh有相同的功能,但它是ctrl-delete。所以我想问题已经解决了,尽管我仍然对答案感兴趣