我有以下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.pasturbo pascal编译FILE.EXE,然后.dosbox/TP/BIN/$(basename $1 .pas).EXE试图删除“file.exe”。问题是:“如何删除大写的.exe文件?

最佳答案

或许你可以这样做:

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

08-26 21:42