編程語(yǔ)言:機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言
一 動(dòng)態(tài)語(yǔ)言與靜態(tài)語(yǔ)言
靜態(tài)語(yǔ)言:編譯型語(yǔ)言
強(qiáng)類型(變量):變量在使用前,必須事先聲明,甚至還需要初始化。
事先轉(zhuǎn)換成可執(zhí)行格式
C,C++,JAVA,C#
動(dòng)態(tài)語(yǔ)言:解釋型語(yǔ)言
弱類型:變量用時(shí)聲明,甚至不區(qū)分類型。
不區(qū)分類型:默認(rèn)為字符串。
PHP,SHELL,python,perl
變量賦值:VAR_NAME=VALUE
引用變量:${VARNAME}
括號(hào)有時(shí)可以省略
example:"There are some $(ANIMAL)s."
雙引號(hào)為強(qiáng)引用,內(nèi)部有變量需要替換則需要用強(qiáng)引用。
面向過(guò)程:shell,C
面向?qū)ο螅篔AVA,Python,perl,C++
二 一些概念
變量:內(nèi)存空間,命名
變量類型:事先確定數(shù)據(jù)的存儲(chǔ)格式和長(zhǎng)度
1. 字符
2. 數(shù)值
(1) 整型
(2) 浮點(diǎn)型
內(nèi)存:編址的存儲(chǔ)單元
進(jìn)程:
三 邏輯運(yùn)算:與,或,非,異或
短路邏輯運(yùn)算
與:只要有一個(gè)為假,結(jié)果一定為假
或:只要一個(gè)為真,結(jié)果一定為真
四 變量
本地變量:
VARNAME=VALUE;作用域?yàn)檎麄€(gè)bash進(jìn)程;
局部變量:
local VARNAME=VALUE;作用域?yàn)楫?dāng)前代碼段
環(huán)境變量:
作用域?yàn)楫?dāng)前shell進(jìn)程及其子進(jìn)程
export VARNAME=VALUE
“導(dǎo)出”=定義環(huán)境變量
腳本在執(zhí)行時(shí)會(huì)啟動(dòng)一個(gè)子shell進(jìn)程
(1)命令行中啟動(dòng)的腳本會(huì)繼承當(dāng)前shell環(huán)境變量
(2)系統(tǒng)自動(dòng)執(zhí)行的腳本(非命令行啟動(dòng))就需要自我定義需要各環(huán)境變量
1.可以先定義本地變量再導(dǎo)出
NAME=jerry
export NAME
2.可以一步導(dǎo)出定位
export NAME=jerry
位置變量
2,...
特殊變量
$?:上一個(gè)命令的執(zhí)行狀態(tài)返回值
程序執(zhí)行,可能有兩類返回值:
程序狀態(tài)返回代碼(0-255)
echo $?
0:正確執(zhí)行
1-255:錯(cuò)誤執(zhí)行
1,2,127系統(tǒng)預(yù)留
/dev/null:軟件設(shè)備,bit bucket,數(shù)據(jù)黑洞
變量操作
撤銷變量:
unset VARNAME
查看當(dāng)前shell中變量:
set
查看當(dāng)前shell中的環(huán)境變量
printenv
env
export
變量追加:
ANIMALS=pig
ANIMALS=$ANIMALS:goat
腳本:命令的堆砌,按實(shí)際需要,結(jié)合命令流程控制機(jī)制實(shí)現(xiàn)的源程序。
shebang:魔數(shù)
!/bin/bash
注釋行,不執(zhí)行
執(zhí)行腳本
bash first.sh