linux 下shell 程式設計之變數及數學運算
1.shell中的變數是不分資料型別的,統一按照字串來儲存
2. bash shell只能支援數學整數運算(zsh可以支援浮點)
3.以下都是在bash shell 下進行的數學運算
方法一使用方括號進行基本的整數運算:
#!/bin/bash
var1=1
var2=2
var=$[$var1+$var2]
echo "var=$var"
輸出結果:
[email protected]:~/xwh$ ./bc.sh
var=3
解決bash shell 中無法計算浮點數的方法使用bc
基本格式:var =`echo "options;expresstion " |bc`
#!/bin/bash
var1=1
var2=2
var=`echo "scale=4;$var1+$var2"|bc`
echo "var=$var"
輸出結果:
[email protected]:~/xwh$ ./bc.sh
var=3
以上只是適用較短的運算,如果有多個表示式這種方式就會有點問題,針對這個問題的解決方案就是重定向
基本格式:var=`bc<<EOF
options
statements
expresstions
EOF
`
#!/bin/bash
var1=1
var2=2
var3=3
var4=4
var=`bc<<EOF
scale=4
a=($var1+$var2)
b=($var3+$var4)
a+b
EOF
`
echo "var=$var"
輸出結果:
[email protected]:~/xwh$ ./bc.sh
./bc.sh: line 25: warning: here-document at line 18 delimited by end-of-file (wanted `EOF')
(standard_in) 6: illegal character: O
(standard_in) 6: syntax error
var=10
相關推薦
linux 下shell 程式設計之變數及數學運算
1.shell中的變數是不分資料型別的,統一按照字串來儲存 2. bash shell只能支援數學整數運算(zsh可以支援浮點) 3.以下都是在bash shell 下進行的數學運算 方法一使用方括號進行基本的整數運算: #!/bin/bash var1=1 var2=2
linux下shell 程式設計之擴充套件正則表示式
1. ‘+’ 限定字元 +限定符表示前面字元至少出現一次或者多次。與*不同在於0次或者多次 2. '?' 限定符 ?限定前面的字元最多出現一次。即出現0次或者1次 3. 數線 |和圓括號() 例如
Linux下Shell程式設計之算術運算和邏輯比較(數值型別、字串型別、檔案型別)
shell程式設計中的算術運算和邏輯比較,主要根據不同運算物件,採用相應的比較、運算方式。 一、數值型 算術運算 ,以變數自增1為例,+ - * / % 等運算方式同理,運算的方式大體四種: i=`expr $i + 1` let i+=1 , let的操作成員不需要
linux中的shell程式設計之變數
shell程式設計主要是為了簡化linux系統管理的。 shell中的變數是一種弱型別的變數,c,java等語言是一種強型別的語言。 linux中的所有的變數預設型別都是字元型別的 零、bash變數的分類 bash變數的型別 變數型別
Linux下shell程式設計例項
1.用while語句建立一個根據輸入的數值求累加和(1+2+3+。。。。+n)的shell程式。 while 若干個命令列1 do 若干個命令列2 done 結構 #! /bin/b
linux下shell程式設計print與printf的區別
1,print是ksh的內建命令,而printf是bash的內建命令 2,print 中不能使用%s ,%d 或%c; 3,print 自動換行,printf 沒有自動換行。 比如下面指令碼的輸出:
linux下shell程式設計總結
概念 shell是一種弱型別、解釋型語言,不需要編譯,只需要一個直譯器,這裡我們用bash。 輸入如下命令: more /etc/passwd 可以看到: 當前使用者root登入的時候,預設開啟的命令列使用者介面就是bash,在這個bash中輸
linux下c程式設計之訊號量semget,semop,semctl函式
訊號量 今天去參加北京市的植樹志願者活動啦!早上起來的挺早的,6:10就被傑子給叫起來啦,帶著對春天的嚮往,我們坐著不花錢的大巴去做為市領導服務去啦!發了一個小紅帽還有一個紅色的制服。 唉。。。說好
嘗試linux下c程式設計之管道
今天試了下管道,感覺挺有意思的~ 現在才發現,原來程序也有這麼多的功能可以實現。管道分類: 根據程序的相互關係,可以分為:匿名管道與命名管道。1 匿名管道:管道是父程序和子程序間,或是子程序與子程序間單向的通訊機制,即一個程序傳送資料到管道,另外一個程序從管道中讀出資料。
shell程式設計之變數以及awk命令和rename命令
常用的環境變數可以用env和set檢視,但是最全面的還是man bash來檢視。 在這裡舉例一些常用的環境變數echo $HOSTNAME 檢視主機名 echo $HOSTTYPE 檢視主機系統型別 echo
Linux下socket程式設計之多執行緒TCP伺服器
程式碼如下: thread_server.c #include<string.h> #include<stdlib.h> #include<stdio.h> #include<sys/types.h> #i
Linux下socket程式設計之多程序TCP伺服器端
程式碼如下: tcp_server.c #include<string.h> #include<stdlib.h> #include<stdio.h> #include<sys/types.h> #includ
linux下shell程式設計除錯方法,gdb工具的使用
原帖:向日葵智慧前言windows 的介面操作非常豐富,對程式開發也是如此,各種強大的 IDE 真是非常方便。轉入 linux 程式設計後,沒有介面,用 vim gcc 搞程式開發,一開始還真是不適應。現在用的多了,反而習慣用 linux 開發了。但是,沒法除錯程式真是太痛苦
Linux下socket程式設計之UDP簡單實現
本文實現一個簡單的UDP小例子,來說明Linux下socket程式設計之UDP的簡單實現。本文主要包括三個部分:伺服器端的實現,客服端的實現和通訊測試。實現的功能:客服端傳送一條訊息給伺服器端,伺服器
Linux下Shell程式設計錯誤記錄
錯誤描述:((: 08: value too great for base (error token is “08”) 編寫指令碼建立給定字首的31個目錄。程式的目的是建立31個目錄,但是建立到第8個時出現了錯誤,錯誤描述如上。推測提示的含義是:系統將08看做
shell程式設計之變數型別
shell程式設計中系統預設所有變數都是字串型。當需要用到其他型別的變數是需要手動宣告。宣告格式如下: declare [+/-][選項] 變數名 -i 將變數宣告為整型 -a 將變數宣告為陣列型別 -x 將變數宣告為環境變數 -r 將變數宣
linux下c程式設計之gdb除錯
之前在個人微信公眾號寫了一篇關於linux下c程式設計之gcc編譯的文章,感興趣可關注我的個人微信公眾號,搜尋移動開發與網路安全技術棧加關注,或掃描本文末尾的微信二維碼加關注。 今天接著說下linu
Linux下網路程式設計之自定義協議進行併發多客戶端與伺服器的通訊(多程序處理併發)不足佔用資源太多
自定義協議訊息體*********msg.h*************#ifndef _MSG_H_#define _MSG_H_struct msg{ char head[10]; //頭部 char msg_chck; //效驗碼 char buff[512];/
1.shell程式設計之變數的高階用法
1.1.變數替換 變數替換的六種形式 例項:非貪婪和貪婪的區別 從頭部刪除 [root@VM_0_9_centos shell_learn]# var_1="i love you,do you love me" [root@VM_0_9_centos shell_learn]
01 shell程式設計之變數定義
#### 一、SHELL介紹 ㈠ 什麼是shell指令碼? ```bash 簡單來說就是將需要執行的命令儲存到文字中,按照順序執行。它是解釋型的,意味著不需要編譯。 若干命令 + 指令碼的基本格式 + 指令碼特定語法 + 思想= shell指令碼 ``` ㈡ 什麼時候用到指令碼? ```bash 重複化、複