繼承人的代碼:
function rm {
cd ~/
if [[ -d ./Jam/projects/"$1" ]]; then
echo Removing $1 from projects...
rm -r ./Jam/projects/"$1"
elif [[ -d ./Jam/archive/"$1" ]]; then
echo Removing $1 from archives...
rm -r ./Jam/archive/"$1"
else
echo $1 does not exist \in ./Jam/projects/ or ./Jam/archive
exit
fi
echo Finished\!
}
運行時,$1 是“Hello World”(i./Jam/archive/ 中的目錄)
我得到這個輸出:
Removing HelloWorld from archives...
-r does not exist in ./Jam/projects/ or ./Jam/archive
不知何故,$1 被分配給“-r”。
我不知道這到底是怎么發生的。任何幫助深表感謝。
uj5u.com熱心網友回復:
您的函式被稱為“rm”,在您的函式“rm”中,您rm -r認為它是“正常的 rm”,但事實并非如此——它是您的函式,這完美地證明了將函式稱為一個已經眾所周知的名稱的危險意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493716.html
標籤:重击
