我很難理解這一點。我已經研究了大括號擴展和mv
命令,但由於某種原因,它對我仍然沒有意義。我讀的Unix和Linux系統管理手冊,並使用此作爲一個例子,但我不理解行:BASH將.log重命名爲.LOG
mv $fname ${fname/.log/.LOG};
我意識到它是移動當前$fname
變量,它是與.LOG,但任何事情${fname/.log/.LOG};
令我困惑。我以爲它基本上是mv
源目的地...那麼爲什麼有2 /?如果有人能用簡單的英語向我解釋這一點,我會非常感激!
#!/bin/bash
find . -type f -name '*.log' | grep -v .do-not-touch | while read fname;
do
mv $fname ${fname/.log/.LOG/};
done
閱讀有關bash參數模式擴展。這裏是一個很好的鏈接http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html – abasu 2013-05-02 08:24:41
我將定位擴展名:'$ {fname /%.log/.LOG}'雖然我會寫:'mv「$ fname」「$ {fname%.log} .LOG」' – 2013-05-02 14:37:50