a=999
echo $a
shell中的變數無需指定型別,直接定義。使用時加上==$==符號。
b = 999
結果會輸出:
bash: b: command not found
變數相加:
a=999
b=999
c=999
echo
$a+$b+$c
結果:
999+999+999常用系統變數:
$home 當前使用者home目錄
$pwd 當前目錄
$shell 系統shell
$user 使用者
功能描述:n為數字。$0代表該指令碼名稱。$1~9代表第一到第
九個引數
。10以上
的引數,
需要用大
括號包含
,如
9代表第一到第九個引數。10以上的引數,需要用大括號{}包含,如
9代表第一到
第九個參
數。10
以上的參
數,需要
用大括號
包含,如
。
#!/bin/bash
echo
$0#輸出檔名:1.sh
echo
$1#輸出第乙個引數:10
echo
$2#輸出第二個引數:20
echo
$3#輸出第乙個引數:30
echo
$4#輸出第乙個引數:40
結果:bash 1.sh 10 20 30 40
1.sh
1020
3040
功能描述:獲取所有輸入引數個數,常用於迴圈。
#!/bin/bash
echo
$0#輸出檔名:1.sh
echo
$1#輸出第乙個引數:10
echo
$2#輸出第二個引數:20
echo
$3#輸出第乙個引數:30
echo
$4#輸出第乙個引數:40
echo $#
結果:bash 1.sh 10 20 30 40
1.sh
1020
3040
4功能描述:$*代表命令列中所有的引數,$*把所有的引數看成乙個整體。$@也代表命令列中所有的引數,不過$@把每個引數區分對待。
#!/bin/bash
echo
'$#'
=$#echo
'$*'=$*
echo
'$@'
=$@
結果:bash 2.sh aaa bbb ccc
$#=3
$*=aaa bbb ccc
$@=aaa bbb ccc
區別:
結果:#!/bin/bash
for i in
"$*"
doecho
$idone
for j in
"$@"
doecho
$jdone
bash ff.sh aaa bbb ccc
aaa bbb ccc
aaabbb
ccc
執行指令碼,結果為(執行異常):#!/bin/bash
echo $[1/0]
3.sh: line 2: 1/0: division by 0 (error token is 「0」)
此時輸出$?變數:
結果:echo
$?
再重新執行一條正確的命令:
此時再輸出$?變數:echo
#shell
靜態變數一經初始化,值不能再被更改,變數不能被撤銷。基本語法:bash: unset: i: cannot unset: readonly variable
bash: i: readonly variable
推薦使用第一種方式。注意:expr 運算子之間有空格a=5;
b=5;
echo
"$(($a+$b))";
echo
"$[$a+$b]"
;
a=5;
b=5;
expr
$a + $b
003 shell 傳遞引數
可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0為執行的檔名 bin bash echo shell 傳遞引數例項!echo ...
shell變數型別和運算子
一 shell變數的應用 1 shell變數的種類 使用者自定義變數 由使用者自己定義,修改和使用 預定義變數 bash預定義的特殊變數,不能直接修改 位置變數 通過命令列給程式傳遞執行引數 二 變數的賦值與引用 1 定義新的變數 變數名要以英文本母或下劃線開頭,區分大小寫 格式 變數名 變數值 2...
shell運算子操作 算術運算子
a 10 b 20 echo a b expr echo a b expr echo a b expr echo a b expr echo a b expr if a b then echo a等於b else echo a不等於b fiif a b then echo a不等於b else ec...