尋找選項作為命令列參數

尋找選項作為命令列參數

我的腳本有問題。我正在嘗試編寫一個腳本,其中命令 find 的選項是第一個命令列參數。

在我的腳本中我有類似的東西

find_option=$1

find $find_option

問題是,例如對於查找選項,*.txt輸出只是我的目錄中的第一個文字文件,但我想找到所有此類文件。

謝謝

答案1

假設你給你的腳本這樣的模式,

./myscript '*.txt'

(引號是必要的,以避免將模式擴展到目前目錄中的名稱),那麼您可以像這樣編寫腳本:

#!/bin/sh

name_pattern=$1

find . -name "$name_pattern"

這採用第一個命令列參數並在對 的呼叫中使用它find,按給定模式過濾在當前目錄及以下目錄中找到的名稱。

請注意,這裡您也需要$name_pattern在呼叫中引用變數擴展find,其原因與呼叫腳本時需要在命令列上引用它的原因相同,即避免將模式擴展為目前目錄中的名稱。

相關內容