尋找一種方法來擴展glob,如果我的參數在bash腳本中沒有被滿足,我並不積極,但我認爲它可能需要eval或類似的東西,但我記不起我的頭頂。以編程方式將glob添加到bash命令
功能
function search()
{
[ 'x' == "${2}x" ] && {
what="*"
} || {
what="${2}"
}
grep -n -Iir "${1}" "${what}"
}
沒有ARG2預期結果
grep -n -Iir 'something' * ## ran as the normal command
kibitzing的一點 - 在'function'關鍵字是一個bashism,使你的代碼不符合POSIX sh的同時增加了沒有價值超過POSIX標準的函數聲明語法 –
...同時,'=='在POSIX測試中無效,對此,標準字符串比較運算符爲'='。 「[」x「=」x $ foo「]'成語,順便說一句,正確使用測試(適當的引用,不使用不推薦的'-a'和'-o'邏輯運算符等) 。 –
順便說一句,原代碼與'grep -n -Iir'something''*''具有相同的結果;引用glob會阻止它的擴展。通常這就是你想要的 - 如果你*沒有引用'$ what'的擴展,那麼你的函數不能用空格搜索文件名。 –