0
我使用Corona SDK,他們對其圖形庫進行了更改,這意味着函數setReferencePoint()的所有實例都必須替換爲2個屬性「 anchor.x「和」anchor.y「。 E.g使用shell腳本在所有文件中用2個參數替換lua函數調用
thePlayer:setReferencePoint(display.TopLeftReferencePoint)
成爲
thePlayer.anchorX, thePlayer.anchorY = 0, 0
我的一些項目有上百個setReferencePoint()的情況下,所以我試圖讓一個腳本,會自動替換所有實例我。但是我對shell腳本沒有太多經驗,所以我還沒有太多運氣。這是我目前的腳本:
#!/bin/bash
OLD=":setReferencePoint(display.TopLeftReferencePoint)"
NEW=".anchorX, .anchorY = 0, 0"
DPATH="/Users/me/Desktop/game/*.lua"
BPATH="/Users/me/Desktop/game/new"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed -i "s/$OLD/$NEW/g" "/Users/me/Desktop/game/new/$f.lua"
else
echo "Error: Cannot read $f"
fi
done
我得到它說的錯誤「指揮預計\後跟文本」,但即使我拿過去,我有另外一個問題。我需要在代碼中的「:setReferencePoint(display.TopLeftReferencePoint)」之前檢索變量名,以便我可以在NEW字符串的「.anchorY」部分之前插入它。
這是甚至可能在這樣的腳本?