2010-03-31 15 views

उत्तर

9

जैसे कि zsh/ksh जैसे गोले में, आप गणित के लिए फ्लोट का उपयोग कर सकते हैं। आप और अधिक गणित शक्ति की जरूरत है, तुम क्या करने कोशिश कर रहे हैं पर देख रहे हैं की तरह bc/awk/dc

जैसे

var=$(echo "scale=2;3.4+43.1" | bc) 
var=$(awk 'BEGIN{print 3.4*43.1}') 

उपकरणों का उपयोग

awk '{printf "%.2f\n",$0/59.5}' ball_dropping_times >bull_velocities 
+0

सुरुचिपूर्ण, धन्यवाद। – hhh

+0

एडब्ल्यूके के लिए एक टिप्पणी चिह्न के बारे में कोई विचार? अगर मैं अपने माप के लिए स्पष्ट रूप से निर्दिष्ट प्रारूप चाहता हूं? केवल कॉलम पढ़ना भ्रमित हो सकता है। – hhh

+0

मुझे समझ में नहीं आता है। दिखाएं कि आपके प्रश्न में उदाहरणों का क्या मतलब है – ghostdog74

3

तरीकों में से बहुत सारे सबसे पोर्टेबल expr आदेश का उपयोग करने के लिए है:

expr 3 + 3 
4

उपयोग के रूप में expr आदेश का उपयोग कर सकते हैं:

expr 3 + 3 

एक में परिणाम संग्रहीत करने के लिए वेरिएबल आप कर सकते हैं:

sum=$(expr 3 + 3) 

या

sum=`expr 3 + 3` 
+0

मैं जोड़ना चाहता हूं (चूंकि यह पोस्ट स्पष्ट रूप से यूनिक्स शुरुआती लोगों के लिए है) कि आखिरी पंक्ति पर बैकटिक्स इसलिए हैं कि शेल आवंटित होने से पहले 'epr 3 + 3' का मूल्यांकन करता है। –

21

expr मानक तरीका है, लेकिन यह केवल पूर्णांकों संभालती है।

$((3+3)) returns 6 
((3+3)) used in conditionals, returns 0 for true (non-zero) and 1 for false 
let 3+3 same as (()) 

let और (()), मान निर्दिष्ट किया जा सकता है उदाहरण के लिए:

बैश एक्सटेंशन की एक जोड़ी है, जो केवल पूर्णांक के रूप में अच्छी तरह से संभाल नहीं है

let a=3+3 
((a=3+3)) 

चल बिन्दु के लिए आप उपयोग कर सकते bc

गूंज 3 + 3 | बीसी

1
डेनिस, बीसी-उपयोग का एक उदाहरण के लिए

हल धन्यवाद:

$ cat calc_velo.sh 

#!/bin/bash 

for i in `cat ball_dropping_times` 
do 
echo "scale=20; $i/59.5" | bc 
done > ball_velocities 
+0

इसे अपने प्रश्न में डाल दें। भी, आप केवल एक अजीब कमांड का उपयोग कर सकते हैं। यह फाइलों को पार करता है, और दशमलव गणित का ख्याल रखता है। मेरा जवाब देखें – ghostdog74

+1

आप रीडायरेक्ट ऑपरेटर '>' का उपयोग कर रहे हैं जो प्रत्येक बार गंतव्य फ़ाइल को छोटा करता है (ओवरराइट करता है)। ऐप ऑपरेटर '>>' में बदलें या 'बीसी' के बाद 'किए गए' के ​​बाद रीडायरेक्शन डालें: 'done> ball_velocities'। –

2

मेरा मानना ​​है कि ((3 + 3)) विधि सबसे तेज है क्योंकि इसका अर्थ है बाहरी बाइनरी के बजाय खोल। सबसे कुशल के लिए सभी सुझाए गए तरीकों का उपयोग करके एक बड़ा पाश समय।

+0

* निक्स प्रक्रियाओं को बिल्कुल इस कारण के लिए बेहद हल्के और त्वरित होने के लिए डिज़ाइन किया गया है। तो बाहरी बाइनरी का उपयोग करना वास्तव में सामान्य उपयोगों के समग्र स्क्रिप्ट प्रदर्शन पर विचार करने में धीमा नहीं है। – SkyDan

संबंधित मुद्दे