
我的腳本有問題。我正在嘗試編寫一個腳本,其中命令 find 的選項是第一個命令列參數。
在我的腳本中我有類似的東西
find_option=$1
find $find_option
問題是,例如對於查找選項,*.txt
輸出只是我的目錄中的第一個文字文件,但我想找到所有此類文件。
謝謝
答案1
假設你給你的腳本這樣的模式,
./myscript '*.txt'
(引號是必要的,以避免將模式擴展到目前目錄中的名稱),那麼您可以像這樣編寫腳本:
#!/bin/sh
name_pattern=$1
find . -name "$name_pattern"
這採用第一個命令列參數並在對 的呼叫中使用它find
,按給定模式過濾在當前目錄及以下目錄中找到的名稱。
請注意,這裡您也需要$name_pattern
在呼叫中引用變數擴展find
,其原因與呼叫腳本時需要在命令列上引用它的原因相同,即避免將模式擴展為目前目錄中的名稱。