我在寫一個小腳本。他有2個目的:在算術函數中包含數字的變量
檢查保存在兩個文件中的數小於60,則什麼也不做。
ELSE - 除以第二號的第一個數字,乘以100,並檢查結果大於20,如果是,運行DIFF上的文件,並將結果保存到文件中。
我在腳本的第一部分。我當前的代碼:
#!/bin/bash
function timeDiff() {
local time1=$(cat $1)
local time2=$(cat $2)
echo $time1
echo $time2
if (("$time1" < 60)) && (("$time2" < "60")); then
echo No comparision needed.
else
diff $1 $2
fi
}
timeDiff 1/1.txt 2/1.txt
的包含文件1.txt
是:
1
(one empty line here)
的包含文件2.txt
是:
2
(one empty line here)
對於這個腳本,我得到控制檯輸出這樣:
1
2
< 60 ")syntax error: invalid arithmetic operator (error token is "
1c1
< 1
---
> 2
如何使這個腳本工作?我用盡了一切......
如果只想從文件的第一行則只有抓住從文件的第一行'時間1 =「$(頭-n 1‘$ 1’)」'(外側引號保護該行尾部的空白,你可能不希望在這種情況下,但通常是正確的事情)。 – 2014-12-02 13:39:28
@EtanReisner:外部引號是否需要? 'x = $(echo'x');回聲「$ x。」' – choroba 2014-12-02 13:42:00
@EtanReisner - 你的想法是去我的'best_bash_oneliners.txt',但它仍然無法正常工作。我已經測試過它:'if((70 <60))&&((70 <60));然後'它直接進入差異。寫'if((10 <60))&&((10 <60));然後'從回聲提出消息:'不需要比較'。所以問題仍然存在'$ time1'和'$ time2'變量。我不知道爲什麼... – dziki 2014-12-02 13:50:57