2016-01-04 89 views
1

我想將生成的參數數組(或字符串)傳遞給bash中的查找命令,但是我嘗試的所有操作都不起作用。這似乎是引用的東西,但我不知道如何解決這個問題。在查找中使用生成的參數數組/字符串

這是我試過的。

#!/bin/bash 
path="/path/to/folders/" 
excludes=() 
excludes+=(" -not -path \"./cache/*\"") 
excludes+=(" -not -path \"./tmp/*\"") 
find $path -type f \("${excludes[@]}" \) >test.txt 

我剛剛得到這個消息find: Der Pfad muß vor dem Suchkriterium stehen: -not -path "./cache/*"

回答

3

你並不需要引用多個參數,請嘗試:

path="/path/to/folders/" 
excludes=(-not -path "./cache/*" -not -path "./tmp/*") 
find "$path" -type f \("${excludes[@]}" \) >test.txt 
+1

更確切地說,他*必須*的方式引用多個論據將它們組合成更少的參數。這樣做是他嘗試的基本問題。不過,他仍然可以通過多個步驟來構建他的'排除數組'。 –

+0

這正是我所說的'多個參數',用'+ ='在多個步驟中做這件事不成問題。 – anubhava

+1

我的英雄!謝謝。 – StinsonMaster