SHELL指令碼 第五課

2021-10-02 03:21:26 字數 3006 閱讀 8007

參考資料

區分了單引號和雙引號的區別;

了解了更多的轉義字元;

退出時的狀態。

變數使用得當,可以使指令碼變得更加強大和有彈性。

$bash:bash二進位制程式檔案的路徑;

$bash_env:該環境變數儲存乙個bash啟動檔案路徑,當啟動乙個指令碼程式時會去讀該環境變數指定的檔案;

$bash_subshell:乙個指示子shell(subshell)等級的變數;

$bash_versinfo[n]:這個陣列含有6個元素,指示了安裝的bash版本的資訊。它和$bash_version相似,但它們還是有一些小小的不同;

#!/bin/bash

for n in 0 1 2 3 4 5

doecho

"bash_versinfo[$n] = $"

done

exit 0

執行結果如下:

$bash_version:安裝在系統裡的bash版本。其中,檢查$bash_version是檢測哪個shell在執行的好辦法。$shell變數不一定能給出正確的答案;

$dirstack:在目錄堆疊裡面最頂端的值;

$euid:有效使用者id;

$funcname:當前函式的名字;

$globignore:由萬用字元(globbing)擴充套件的一列檔名模式;

$groups:目前使用者所屬的組;

$home:使用者的家目錄,通常是/home/username

$hostname:在系統啟動時由乙個初始化指令碼中用hostname命令給系統指派乙個名字;

$hosttype:機器型別;

$ifs:內部字段分隔符;

$ignoreeof:忽略eof:在退出控制台前有多少檔案結尾標識(end-of-files,control-d)會被shell忽略;

$lc_collate:它通常在.bashrc/etc/profile檔案裡被設定,它控制檔名擴充套件和模式匹配的展開順序。如果設定不當,lc_collate會在檔名萬用字元(filename globbing)裡引起不可預料的結果;

$lc_ctype:這個內部變數控制萬用字元(globbing)和模式匹配中的字元解釋;

lineno:這個變數表示在本shell指令碼中該變數出現時所在的行數。它只在指令碼中它出現時有意義,它一般可用於除錯;

$machtype:機器型別;

$oldpwd:上一次工作的目錄(「old-print-working-directory」,你上一次進入工作的目錄);

$ostype:作業系統型別;

$path:可執行程式檔案的搜尋路徑。一般有/usr/bin/, /usr/x11r6/bin/, /usr/local/bin,等等;

$pipestatus:此陣列變數儲存了最後執行的前台管道的退出狀態。相當有趣的是,它不一定和最後執行的命令的退出狀態一樣;

$ppid:乙個程序的$ppid變數儲存它的父程序的程序id(pid);

$prompt_command:這個變數在主提示符前($ps1顯示之前)執行它的值裡儲存的命令;

$ps1:這是主提示符(第一提示符),它能在命令列上看見;

$ps2:副提示符(第二提示符),它在期望有附加的輸入時能看見。它顯示像>的提示;

$ps3:第三提示符。它在乙個select迴圈裡顯示;

$ps4:第四提示符,它在用-x選項呼叫乙個指令碼時的輸出的每一行開頭顯示。它通常顯示像+的提示;

$pwd:工作目錄(即你現在所處的目錄);

$reply:沒有變數提供給read命令時的預設變數。這也適用於select命令的目錄,但只是提供被選擇的變數專案編號而不是變數本身的值;

$seconds:指令碼已執行的秒數;

$shellopts:已經啟用的shell選項列表,它是乙個唯讀變數;

$shlvl:shell的巢狀級別。指示了bash被巢狀了多深。在命令列裡,$shlvl是1,因此在乙個指令碼裡,它是2;

$tmout:如果$tmout環境變數被設為非零值時間值time,那麼經過time這麼長的時間後,shell提示符會超時.這將使此shell退出登入;

$uid:使用者id號;

$#:命令列引數或者是位置引數的數量;

$*:所有的位置引數都被當成單個單元;

$@:和$*相同,但每個引數都是乙個引起的字串;

$-:(使用set命令)傳給指令碼的標記;

$!:在後台執行的最後乙個作業的pid(程序id);

$_:儲存前乙個命令最後乙個引數的變數值;

$?:乙個命令,函式或指令碼自身的退出狀態碼;

$$:指令碼本身的程序pid。

第五課 文法

1.名詞 場所 行 來 帰 使用移動動詞時,移動的方向用助詞 表示。京都 行 我要去京都。日本 來 我來到了日本。帰 我要回家。注 助詞 讀作 2.行 行 完全否定疑問詞所問的全部範疇時,用助詞 與否定形式一起使用。行 也不去。何 食 什麼也不吃。第6課 沒有任何人在。第10課 3.名詞 交通工具 ...

C語言第五課

主要內容 二維陣列 字串陣列 多維陣列 理解 一 二維陣列 有兩個下標的陣列稱為二維陣列 定義 型別修飾符 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 示例 定義乙個2行3列的二維陣列 int array 2 3 這是乙個標準的二維陣列 二維陣列的元素也稱為雙下標變數 0 1 2...

C語言第五課

c函式若不宣告型別,則預設為 int 型 在函式中,指標可以 被調函式 修改 主調函式 1 int func int a main 2 void func int num main int num 2 func int b 野指標會 指向任一地方 int pum printf x pum 指標偏移的...