我有以下bash功能:
function tpc()
{
cp $1 .dosbox/TP/BIN/
dosbox -c "TPC.EXE $1"
rm .dosbox/TP/BIN/$1
#rm .dosbox/TP/BIN/$(basename $1 .pas).EXE
}
主要目的是:
tpc“file.pas”
然后它编译“dosbox”,删除.dosbox
路径中的“file.pas”。但我想做点其他事情:“删除.exe文件”。如果我这样做,问题如下:tpc file.pas
turbo pascal编译FILE.EXE
,然后.dosbox/TP/BIN/$(basename $1 .pas).EXE
正在尝试删除“file.EXE”。问题是:“如何删除大写.exe
文件?
答案 0 :(得分:3)
find
命令有一个iname
开关,使搜索不区分大小写。
find . -iname $(basename $1 .pas).EXE -delete
还有delete
开关,用于删除找到的文件。如果要将搜索限制在特定目录下的文件,请将.
替换为目录路径。
答案 1 :(得分:2)
查看shopt
1
你想做的事情可能是这样的:
shopt -s extglob nocaseglob
rm .dosbox/TP/BIN/$(basename $1 .pas).EX
shopt -u nocaseglob
答案 2 :(得分:2)
也许你可以这样做:
function tpc()
{
cp "$1" .dosbox/TP/BIN/
dosbox -c "TPC.EXE $1"
rm ".dosbox/TP/BIN/$1"
REMOVE=${1^^} REMOVE=${REMOVE##*/} REMOVE=${REMOVE%.???}.EXE
rm ".dosbox/TP/BIN/$REMOVE"
}
有关所用方法的详细信息,请参阅Parameter Expansion。