2014-02-18 185 views
0

下面這個簡單的腳本不工作的時候,而不是通過一個單一的文件名,我想通過擴展字符傳遞多個文件,如*在bash腳本傳遞多個參數

#!/bin/bash 
fgrep -c '$$$$' $1 

如果我給的命令script.sh file.in劇本的作品。如果我發出命令script.sh *.in它不會。

+0

'$ 1'沒有設置爲'* .in';它被設置爲'* .in'擴展到的第一個項目。 – chepner

+0

@chepner如果沒有匹配的文件存在,它可能*是* .in'。 ;) – kojiro

回答

5

使用"[email protected]"將多個文件名傳遞給fgrep。 $1只傳遞第一個文件名。

fgrep -c '$$$$' "[email protected]" 
+0

它工作的很好 - 謝謝 – mimenico

+0

@mimenico請注意,'$ 1'是'$ @'的一個子集,指的是第*個參數。另外,引用(通常)比不引用更好:因此,'$ @'比'$ *'更好。 – jpaugh