重新梳理關於shell指令碼程式設計

2021-07-24 14:45:21 字數 1324 閱讀 3860

2023年11月13日                                     星期一                                  晴

今天梳理一下關於shell指令碼的程式設計。

echo命令用於在螢幕上顯示訊息。shell中有一些特殊的符號,#除了#!/bin/bash中的#外,其餘作注釋符,$變數符,$a表示變數a的值,

單引號『』被引起的字元全部做普通字元,雙引號「」內除了$ \ `保留特殊功能,其餘作普通字元。倒引號內字元做shell命令列解釋執行。

區域性變數 只在建立他們的shell中使用,可以在shell內任意使用和修改他們。變數名=值,需注意的是:等號兩邊不可以有空格,必須用雙引號括起來,shell變數可以使用大小寫字母,區分大小寫。變數引用時 $[變數名],echo命令可以顯示單個變數取值,變數名前加$。unset【變數名】 可以消除變數,舉例:echo $   unset name(注意name前沒有$),set顯示所有變數嗎,readonly 變數名  設定為唯讀變數。

環境變數  可以在建立它們的shell及派生出來的任意子程式中使用。有些變數是使用者建立的,其它的則是專用的(比如path、home)。是系統環境的一部分,不必去定義它們,可以在shell程式中使用它們。還能在shell中加以修改。env 可以看到所有的環境變數,echo $環境變數名 (顯示乙個環境變數)unset 環境變數名 可清除環境變數。

內部變數 是linux所提供的一種特殊型別的變數,這類變數在程式中用來做出判斷。在shell程式內這類變數的值是不能修改的。   $-----傳送給shell程式的位置引數的數量 $?-----最後命令的完成碼或者在shell程式內部執行的shell程式(返回值)$0-----shell程式的名稱 $*($@)呼叫傳送的所有字串 $$----本程式的pid $!上乙個命令的pid。

關於計算的命令:$((  $a + $b  ))    expr $a + $b      $[$a + $b]

條件判斷命令:test n1 -引數 n2 真返回0(【 n1 -引數 n2 】),假返回1   -lt  小於   -gt  大於    -eq 等於   -le小於等於  -ge 大於等於   -ne不等於

檔案測試:  test -引數 檔名(目錄)    -f 存在且是普通檔案  -d  存在且是目錄  

分之語句:if和case構造執行基於條件的shell指令碼 注意case中每個分號必須以;;結尾。if以fi結尾

迴圈語句:while、for和until語句  迴圈開始do  迴圈結束done

read變數 輸入變數   ps 檢查後台程序  kill終止後台程序

管道(|)指示shell『|』前的命令的輸出作為『|'之後命令的輸入傳送

Shell 指令碼程式設計

1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...

Shell 指令碼程式設計

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...

shell指令碼程式設計

今天看看shell程式設計,記錄下期中與想象中不一樣的地方 0.注釋用 1.shell的變數賦值 your name zhm 在your name和等號中間不能有空格,這和別的語言很不一樣,那麼在使用變數時和別的語言也不一樣,要使用 your name,一般要用 一定是大括號 2.那麼如何把乙個變數...