我有這樣的bash腳本:如何在目錄及其子目錄中的每個文件上運行bash腳本?
#!/bin/bash
if [ $(egrep -c "(% url+)([0-9a-z_:]+)" 'test.txt') -gt 2 ]; then
echo true
exit 1
else
echo false
exit 0
fi
而我在test.txt
測試它,但我怎麼在目錄中的每個文件運行它和它的子目錄?如果我只是嘗試這樣的事:
#!/bin/bash
if [ $(egrep -c "(% url+)([0-9a-z_:]+)" '~/Documents/somefolder/targetfolder/') -gt 2 ]; then
echo true
exit 1
else
echo false
exit 0
fi
這顯然不工作,給我下輸出:
egrep: ~/Documents/somefolder/targetfolder/: No such file or directory
./run.sh: line 2: [: -gt: unary operator expected
false
所以,我怎麼可以運行我的目錄中的每個文件的腳本,即使它位於子目錄中?
退出狀態應該是什麼? 1如果任何文件有2個匹配項,或1個,如果所有文件都有2個匹配項? (另外,您可能希望使用'echo true'退出0,以符合約定0表示成功,非0意味着失敗。) – chepner
如果任何內容與模式匹配,則需要返回退出代碼1。更多信息:http://stackoverflow.com/questions/32612068/how-to-find-positive-matches-of-regex-in-the-directory-and-return-needed-exit-co 2+比賽只是一個測試值 – Tachi
你確定'〜/ Documents/somefolder/targetfolder /'實際存在嗎? – Samuel