shell程式設計第三天 運算

2021-10-19 13:27:56 字數 3276 閱讀 3803

expr

語法:expr 數字1 符號 數字2

expr可以讓整數進行加減乘除和取餘

expr 1 + 2
編寫乙個指令碼計算兩門的成績總和

#!/bin/bash

read -p "請輸入您的第一門成績:" number1

read -p "請輸入您的第二門成績:" number2

echo -n "總成績是:"

$(())有運算能力,可以進行加減乘除和取餘的運算,它的語法是:

$((整數1 符號 整數2

))

echo

$((1+2

))

3
$

語法:$[整數1 符號 整數二]

echo $[2 + 3]
5
let

let關鍵字做變數運算,

let sum=2+3;

echo

$sum

5
let可以做自增操作

let i++;

echo

$i

此時的i++就相當於i=i+1

安裝乙個小數運算的工具

yum install -y bc
將數字輸出在螢幕中並用管道交給bc運算,最後得出結果

echo

"2 + 4"

|bc

6
bc是乙個互動運算器,支援浮點運算。

scale=3表示小數點後保留三位小數

echo

"scale=3;6/4"

|bc

1.500
也可以使用bc命令進行計算

自定義變數是只在當前的shell有效,如果要想別人用的話,需要加入環境變數確保其他人也可以用

export back_dir2=/home/backup# 宣告環境變數

export back_dir1# 將自定義變數轉換成環境變數

想讓變數在當前使用者登入後一直的生效,可以將變數放在~/.bash_profile

vi ~/.bash_profile
如果想讓變數,在所有使用者登陸後一直生效,可以講變數放置在/etc/profile中

vi /etc/profile
比如系統中也有一些環境變數

echo

$user

檢視系統的環境變數

env
位置變數的語法:命令 引數1 引數2 引數3..........9以後特殊定義

# 表示指令碼的名稱

$*# 所有的引數

$# # 引數的個數

$?# 作為上乙個程式的返回值(0代表的是成功,非0代表的是失敗)

$$ # 程式的pid

$?

# 作為上乙個程式的返回值(0代表的是成功,非0代表的是失敗)

$$# 程式的pid
現在使用的是遠端登入centos7,所以應該是pts

程序是有關係的可以使用pstree(程序樹)進行檢視

安裝程式

總結:

位置變數就是$1 $2 $3

位置變數是預先定義過了的

使用者使用時,必須要攜帶引數

位置變數不止程式設定的唯一方法,比如read也是可以的

練習

編寫乙個自動建立使用者並配置密碼的指令碼檔案

vi useradd.sh
#!/bin/bash

read -p "請輸入使用者名稱" user

read -p "請輸入使用者的密碼" password

useradd

$user

echo

"$password"

|passwd --stdin $user

&> /dev/null

echo

"$user已經建立,$user的密碼是$password"

Shell筆記第三天

2.3shell中的變數 系統變數 環境變數 使用者自定義的變數 本地變數或者shell變數 系統變數是linux shell bash 建立和維護的變數 系統變數 及含意 都是大寫 bash we version display 設定x display 名字 editor 設定預設的文字編輯器 h...

第三天,努力!!

第三天了,不錯不錯,基本上按自己的計畫進行著,雖然工作還是沒找到,不過也不再那麼的怕了,慢慢來吧,其實也沒太多時間了 今天早上十點才,真的覺得自己太不像話了,不過我一覺醒來就那個時候了,我的手機每天的鬧鐘是7 30不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...

杭州第三天

一樣的時間起床,一樣的時間去吃早飯,坐在一樣的位置享受完幾乎一樣的陽光和一根煙以後,我開始了在杭州ut的又一天工作。上午按照計畫重新安裝oracle資料庫,由於一邊安裝一邊給旁邊的兩個同事作簡單的解釋,所以到了在中午吃飯以前只是安裝完了軟體部分。ut的食堂有兩層,每個月的餐費都是直接打入員工卡中,所...