這是一個bash的安裝腳本。腳本foo.sh以「DIRECTORY」作爲參數。說,有一個目錄/ TEST/TEST_1A/TEST_2A/TEST_3和另一個目錄/ TEST/TEST_1B/TEST_2B/TEST_3。
腳本:foo.sh簡要介紹。
DIR=`find $HOME -type d -name $1 | head 1'
if [ DIR is set to a directory ]
then
rm -rf $DIR
用法:foo.sh TEST_3
從劇本現在,只有/測試/ TEST_1A/TEST_2A/TEST_3可以被刪除。要刪除/ TEST/TEST_1B/TEST_2B/TEST_3,我需要在我的find命令中使用reg exp來精細調整remove以解決目錄衝突。
修改了發現上面的腳本部分如下
DIR='find $HOME -type d -regexp $1 | head 1
新的使用:/ foo.sh TEST_2B TEST_3
但 「查找」 命令無法得到DIR設爲/ TEST/TEST_1B/TEST_2B/TEST_3,而是返回空&作爲一個結果DIR是空的,我永遠不會刪除/ TEST/TEST_1B/TEST_2B/TEST_3
如何更改腳本,以便查找可以僅處理目錄名稱,也可以處理目錄路徑中的NO問題。事實上,一些用戶可能會給部分目錄路徑作爲參數「foo.sh」。我希望「foo.sh」的工作,即使是在這樣的情況下
看起來您可以自由交換'\''和'''字符。這只是在你張貼在這裏嗎?或者你的腳本試圖用'''代替'\''字符? – sarnold
..你是否知道'head(1)'命令實際_does_? – sarnold
您不能像在「新使用情況」部分中那樣指定子目錄/路徑,並期望它與任何內容匹配。在指定的目錄結構中找到文件條目的搜索(文件是否是真實文件或是目錄),你要求它一次搜索2個關卡,還有你是否要刪除這兩個TEST_3目錄?你確定你想要刪除的目錄將**總是**成爲列表中的第一個?更好的向我們展示來自所有例子的輸出(如DIR)。祝你好運。 – shellter