Awk
比較文本文件中的數字,如果滿足條件執行一個shell腳本
我有一個文本文件(由腳本創建),其中僅包含單行中的數字,例如“5 17 42 2 87 33”。我想用 50 檢查每個數字(範例),如果這些數字中的任何一個大於 50,我想執行另一個 shell 腳本。我正在使用一個 vumeter 程序,我的目的是在噪音水平很高時執行一個聲音辨識程序。所以我只想確定一個門檻值。
作為參數接受函式和
input
硬編碼文件名:greaterthan() ( threshold=$1 set -- $(< input) for arg do if [ "$arg" -gt "$threshold" ] then echo execute other shell script break fi done )
將其作為原始碼,或將其製作為腳本,然後將其命名為喜歡的
greaterthan 50
名稱或您喜歡的任何數字。
您可以使用 dc :
dc -f lefile -e ' [ c # clear the stack ! xmessage "a number is greater than 50" & # pop up a message ] sr [ 50 <r # if a number > 50 execute macro r z 0 <t # if stack not empty execute macro t ] st lt x '