輕鬆理解Shell指令碼中的變數(二)

2021-10-04 14:28:53 字數 2099 閱讀 8701

環境變數:

使用者在作業系統時使用到的命令搜尋路徑

發現其不用絕對路徑就可以執行指令碼,因為他寫在$path中。我們將它移到 /mnt/ 中,

發現只有執行絕對路徑可以執行指令碼。那麼我們如果想讓 /mnt/下的指令碼也不用絕對路徑就能執行,我們可以:

設定方式:

使用者變數設定:

thermal使用者就可以直接用檔名執行 /mnt/ 下的指令碼了,切換回root使用者則不行:

全域性變數設定:

所有的使用者都因為配置檔案的更改而獲得了/mnt 這個搜尋路徑。

$(

) 或者 `` 優先執行

非互動模式:

$0 is /mnt/test.sh          ##指令碼本身

$1 is westos            ##指令碼後所輸入的第一串字元

$2 is linux

$3 is redhat

$* is westos linux redhat       ##指令碼後所輸入的所有字元"westos linux redhat"

$@ is westos linux redhat      ##指令碼後所輸入的所有字元』westos』 『linux』 『redhat』

$# is 3               ##指令碼後所輸入的字串個數

互動模式傳參:

read westos               ##對westos賦值

read -p 「please input word:」         ##輸出提示語

-s                    ##隱藏輸入內容

定義: 程式的別名

設定方式:

word()

word 在指令碼中就代表action1 action2這兩個動作

例:

大括號內是 read_action 這個程式函式執行的動作,

中間的 read_action 用來迴圈動作,

最後面的 read_action 是執行的命令函式

可以看出,在迴圈執行程式命令

shell指令碼中的變數

1 在命令列中和指令碼中,變數定義得格式 name value 左右兩邊不能有空格,否則會當做命令來對待,輸出乙個command not found echo name echo 列印出變數,引用變數使用 name.2 單引號和雙引號 語法 和php中相同 雙引號仍然可以保有變數的內容,但單引號內僅...

shell指令碼中的變數

變數就是記憶體一片區域的位址 命令無法操作一直變化的目標 用一串固定的字元來表示不固定的目標可以解決此問題 export宣告 env顯示所有環境變數 echo path export a 1 在環境關閉後變數失效 字元 數字 轉譯單個字元 弱引用,批量轉譯個數字元 不能轉譯 強引用 表示當前程序的i...

shell指令碼中的變數

後記面試中很重要 在系統中,當我們執行 bin ls時與ls命令結果並不相同,因為ls是已經經過加工過的命令。alias xie vim 臨時設定,開啟了新的shell就會失效 vim bashrc 只對當前使用者生效 alias xie vim source bashrc vim etc bash...