【Linux】【Shell】【Basic】變量與數據類型


1. 變量:

 

1.1. 局部變量:作用域是函數的生命周期;在函數結束時被自動銷毀;

 定義局部變量的方法:local VARIABLE=VALUE

 

1.2. 本地變量:作用域是運行腳本的shell進程的生命周期;因此,其作用范圍為當前shell腳本程序文件;

 

1.3. 環境變量

 

1.4. 位置參數變量:向腳本傳遞參數

例如:myscript.sh  argu1 argu2

引用方式:$1,  $2, ..., ${10}, ${11}, ...,大於一位數的要用大括號引起來

輪替:shift  [n]:位置參數輪替;

練習:寫一腳本,通過命令傳遞兩個文本文件路徑給腳本,計算其空白行數之和;

#!/bin/bash
#
file1_lines=$(grep "^$" $1 | wc -l)
file2_lines=$(grep "^$" $2 | wc -l)
echo "Total blank lines: $[$file1_lines+$file2_lines]"

  

1.5. 特殊變量

$0:腳本文件路徑本身;
$#:腳本參數的個數;
$*:所有參數
$@:所有參數

2. 數據類型:

2.1. 字符型:所有變量默認都為字符型

2.2. 數值型

2.2.1. 算術運算:+, -, *, /, %, **

定義方式:

let  VAR=expression

VAR=$[expression]

VAR=$((expression))

VAR=$(expr argu1 argu2 argu3)

注意:有些時候乘法符號需要轉義

 

2.2.2. 增強型賦值:變量做某種算術運算后回存至此變量中;+=,-=,*=, /=, %=

let i=$i+#
let i+=#
#自增:
VAR=$[$VAR+1]
let  VAR+=1
let  VAR++
#自減:
VAR=$[$VAR-1]
let  VAR-=1
let  VAR--

  

 

2.2.3. 判斷賦值:

 

2.2.4. 練習:

 

計算/etc/passwd文件中的第10個用戶和第20個用戶的id號之和;

id1=$(head -10  /etc/passwd | tail -1  | cut  -d:  -f3)
id2=$(head -20   /etc/passwd | tail -1  | cut  -d:  -f3)

 

計算/etc/rc.d/init.d/functions和/etc/inittab文件的空白行數之和;

grep "^[[:space:]]*$"   /etc/rc.d/init.d/functions | wc -l

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM