-
read命令: 在腳本運行過程中,向腳本中傳遞用戶輸入的值。 read命令比位置參數(shù)更好用,因它可以給用戶輸出提示信息,以及對輸入過程和內(nèi)容做進一步的規(guī)范。 read 選項 變量名 例如: read -p "Pls input ur name" name -t 20 -s 其中: -p "提示信息" :在等待read輸入時,輸出提示信息; -t 秒數(shù) :設(shè)定等待輸入的時間,過時終止腳本 -n 字符數(shù) : read命令將只接受指定的字符數(shù) -s 隱藏輸入的字符 : 用于密碼等內(nèi)容的輸入。查看全部
-
預(yù)定義變量: $?, $$, $! 命令返回值$?:最后一次執(zhí)行的命令的返回狀態(tài),值為0,說明上一個命令正確執(zhí)行,值非0,說明上一個命令執(zhí)行出錯。(至于具體返回的錯誤值是多少,是由編寫被運行的這個程序的人在程序里指定的。) 當(dāng)前進程號$$:當(dāng)前進程的進程號(即PID) 最后后臺進程號$!:后臺運行的最后一個進程的進程號。 上述三個中,$?最常用。 預(yù)定義變量和位置變量 相比于 用戶自定義變量 來說,格式更加嚴格, 用戶 只能 修改、訪問 預(yù)定義變量和位置變量 的值,而無法修改其名稱和作用, 與之相比,環(huán)境變量和用戶自定義變量就不那么嚴格。查看全部
-
$n n為數(shù)字,$0代表命令本身,$1-$9代表第一到第九個參數(shù),十以上的參數(shù)需要用大括號包含,如${10} $* 這個變量代表命令行中所有的參數(shù),$*把所有的參數(shù)看成一個整體 $@ 這個變量也代表命令行中所有參數(shù),不過$@把每個參數(shù)區(qū)分對待 $# 這個變量代表命令行所有參數(shù)的個數(shù)查看全部
-
位置參數(shù)變量: $n $* $@ $#查看全部
-
位置參數(shù)變量: $1,$2,....$9,${10},.... 例如: 編好了某腳本文件:a.sh,chmod后即可運行: $ a.sh 111 222 x.txt y.c 等等參數(shù) 系統(tǒng)會將命令行里的a.sh賦給a.sh腳本中的$0這一變量, 后面對應(yīng)地, 將 111 賦給 $1; 222 賦給 $2; x.txt 賦給 $3; y.c 賦給 $4;查看全部
-
幾個重要的系統(tǒng)環(huán)境變量: 1.PATH: PATH中包含多個由冒號分開的目錄,都是系統(tǒng)默認的命令搜索的路徑(系統(tǒng)查找命令的路徑) PATH="$PATH":某目錄 可以給PATH變量臨時增加命令路徑值,重啟/重登錄?后復(fù)原。查看全部
-
環(huán)境變量一般都用大寫字母。 而Linux中是沒有大寫命令的,這樣可以把命令和變量區(qū)分得更清楚。查看全部
-
在6min-7min處,老師講錯了, 6min時,unset 后本應(yīng)接 z,但他錯寫為$z,導(dǎo)致系統(tǒng)報錯(1不是一個有效的標識符),1是z的值,而且是數(shù)字,必然不能作為變量名。 在ubuntu實驗時,子bash中可以unset掉父bash傳過來的環(huán)境變量,但unset的范圍僅限于子bash;即: x=123 export x bash #進入到子shell中 echo $x 123 #成功傳遞 set -u unset x #在子shell中刪除x echo $x bash: x : unbound variable #前面輸入了set -u命令,故此處bash報錯,這里bash前沒有橫線。 exit #推出子shell echo $x 123 #在父shell中,值仍然在。查看全部
-
export命令:用戶通過此命令可將一個(局部)變量設(shè)為環(huán)境變量。 export 變量名 env命令:僅查看環(huán)境變量查看全部
-
環(huán)境變量與(用戶)自定義變量的區(qū)別: 環(huán)境變量是全局變量 自定義變量是局部變量 具體地說: 自定義變量只在當(dāng)前shell中生效 而環(huán)境變量在當(dāng)前shell和這個shell的所有子shall中生效。(眾所周知,很多情況下,例如,執(zhí)行shell腳本時,執(zhí)行腳本的shell會創(chuàng)立一個子進程,(當(dāng)然,子進程還可以進一步生子,子子孫孫……), 因此,環(huán)境變量,就是那些會傳給子進程的變量) 另外,注意環(huán)境變量只能從父進程到子進程單向繼承。換句話說:在子進程中的環(huán)境如何變更,均不會 影響父進程的環(huán)境。 參《shell十三問》查看全部
-
在shell中,所有變量的默認類型都是字符串型, (即系統(tǒng)把所有值都當(dāng)作字符串放到變量中,不論這個“字符串”實際上是整數(shù)、浮點數(shù)等等) 例如: x=5 這里5是作為一個字符串而不是數(shù)值賦給x的, echo $x 5 所得出的5也是一個字符串,因此不能直接參加數(shù)學(xué)運算。 再例如: y=6 z=$x+$y echo $z 5+6 可見,z并不是11,系統(tǒng)只是把5+6當(dāng)作了一個字符串賦給了z,賦值前并沒有對5+6進行進一步地計算。 變量迭加的兩種方法: x="$x"234 x=${x}234 變量的查看: 命令set set -u 調(diào)用未聲明變量時會報錯, 例如: echo $a set -u (報錯……) (此處,a是未聲明變量,而并不是在先前已經(jīng)進行過賦值聲明“a=(NULL_VALUE)”(即“a=”)的變量。) 變量的刪除: unset 變量名查看全部
-
在shell中,所有變量的默認類型都是字符串型, (即系統(tǒng)把所有值都當(dāng)作字符串放到變量中,不論這個“字符串”實際上是整數(shù)、浮點數(shù)等等)查看全部
-
呵呵查看全部
-
777查看全部
-
666查看全部
舉報
0/150
提交
取消