2014-12-26 50 views
0

我想做5-9=-4並刪除-減號,然後在4中加3如何將終端的數值傳遞給caculator?

例如

5-9=-4. 4 + 3 = 7 

我該怎麼做?我試過echo "5-9" | bc | last + 3

但它不起作用。

我想在單行linux命令中做。

+0

這看起來少了很多類似的編程和更多:

echo "-(5 - 9) + 3" | bc 

上的bash下運行像簡單的shell腳本,所以超級用戶可以說是一個更好的地方。否則,使用您正在使用的特定外殼進行標記並從那裏進行。 –

+0

你可以試試'x = $((5 - 9)); x = $(($ {x# - } + 3)); echo $ x'。 –

回答

0

有點哈克,但在這裏:

echo "5-9" | bc | sed 's/-//' | sed 's/.*/\0+3/' | bc 

第一SED呼叫刪除第一減號,轉向-4〜4。第二符連接 4到4 + 3。

+0

嗨,謝謝。它工作正常。我想知道鋤頭最後的sed命令(sed's /.*/ \ 0 + 3 /')是否有效? – user2866747

+0

/.*/部分用正則表達式選擇整個輸入。這個。表示任何字符,*表示零個或多個字符,組合表示整個輸入。然後你得到/ \ 0 + 3 /,這意味着替換爲選擇,\ 0,然後是+3,這完全替代了。*或所有內容,用\ 0 + 3或所有內容+ 3 –

+0

謝謝。但我想知道爲什麼0,零是需要的?如果我把1或其他值而不是0零,然後我得到錯誤。 – user2866747

0

試試這個。

echo -e "5-9 \n . * -1 \n .+3" | bc | tail -1 
0

只需使用括號,這個解決方案應該在幾個不同的炮彈運行:

echo $((-(5 - 9) + 3)) 

let "a = -(5 - 9) + 3"; echo $a 
相關問題