shell學習筆記之變數(一)

2021-09-06 12:11:18 字數 1607 閱讀 5424

一、普通變數

1.使用變數之前通常並不需要事先宣告,通常賦值的時候建立他們

2.預設所有的變數都被看做字串,並且以字串儲存

3.變數區分大小寫

4.變數名前面新增$符號來訪問變數,賦值的時候只需要使用變數名

5.如果字串中包含空格,就必須用引號括起來

6.等號兩邊不能有空格

#!/bin/sh

myvar="

hi there

"echo

$myvar

echo

"$myvar

"echo

'$myvar

'#不會發生替換

echo

\$myvar #不會發生替換

echo

enter some text

read myvar

echo

'$myvar

'now equals $myvar

salutation=7+5

exit

0$./variable

hi there

hi there

$myvar

$myvar

enter some text

輸入:hello world

$myvar now equals hello world

7+5

二、環境變數和引數變數

$0                shell指令碼的名稱

$1, $2,...        指令碼程式的引數

$#                傳遞給指令碼的引數的個數

$*                在乙個變數中列出所有的引數,各個引數之間用環境變數ifs中的第乙個字元分割開。

如果ifs被修改了,那麼$*將命令列分割為引數的方式也會改變。

$@                $*的乙個變體,不適用ifs變數,即使ifs為空,引數也不會擠在一起。        

$$                指令碼的程序號,指令碼程式通常會用它來生成乙個唯一的臨時檔案,如/temp/tempfile_$$

$home            使用者的家目錄

$path            冒號分割的用來搜尋命令的目錄列表

$ps1            命令提示符,通常是$字元,在bash中可以設定更複雜的值,比如:[\u@\h \w]$就是乙個流行的預設值,

給出使用者名稱、機器名、當前目錄名、提示符$

$ps2            二級提示符,用來提示後續的輸入,通常是》字元

$ifs            輸入域分隔符,讀取輸入時,它給出用來分割單次的一組字元,通常時候空格,換行符,製表符

$@和$*的區別

$ ifs=''

$ set foo bar bam

$ echo"$@

"foo bar bam

$ echo"$*

"foobarbam

$ unset ifs

$ echo"$*

"foo bar bam

Shell之變數操作

1.定義變數 為了避免與環境變數衝突,一般用小寫 如pp mydql,kdkfeof 第二賦值方案 呼叫變數使用 符號 變數疊加 2.輸出採用echo,如上圖所示 3.變數分類 自定義變數和環境變數。4.檢視 set 檢視所有變數及其值 5.刪除變數 unset 變數名,如 6.作用範圍 自定義變數...

Shell指令碼之 變數

與編譯型語言不同,shell指令碼是一種解釋型語言。執行這類程式時,直譯器 interpreter 需要讀取我們編寫的源 source code 並將其轉換成目標 object code 再由計算機執行。linux預設的指令碼解析器是bash。參考資料 第乙個shell指令碼 下面演示我們的第乙個s...

Python 學習筆記之變數

python中變數名規則與其它大多數高階語言一樣,都是受c語言影響。變數名一般由字元 數字 下劃線組成,python 變數名是 大小寫敏感的。python是動態型別語言,不需要預先宣告變數的型別。變數的型別和值在值在賦值那一刻決定。另外,python中,由於記憶體管理是由直譯器負責的,所以開發人員可...