注意:即使你將整數、小數 賦值給變數,它們也會被視為字串,這一點和大部分的程式語言不同。
variable=value (沒有空格、tab縮排時可以用)
variable=『value』 (有空格、tab縮排時用;) (單引號就是直接以字串的形式輸出所有引號裡面的東西)
variable=「value」 (有空格、tab縮排時用;)(兩者區別是雙引號會先解析引號裡的東西,再進行輸出 或別的操作)
最好用雙引號括起來!!!!
它的命名規範和大部分程式語言都一樣:
$ {}
name=「li sir」 (=號左右切記不能有空格!!!)
echo $name (使用乙個定義過的變數,前面需要加 $ 符號)
echo 「hello $ ,welcome」 (加花括號是為了幫助直譯器識別變數的邊界,推薦給所有變數加上花括號,這是個良好的程式設計習慣!!!)
()內的命令可以作為乙個變數賦值給另乙個變數 (常用括號形式的,另一種忽略就好)
我在 code 目錄中建立了乙個名為 log.txt 的文字檔案,用來記錄我的日常工作。下面的**中,使用 cat 命令將 log.txt 的內容讀取出來,並賦值給乙個變數,然後使用 echo 命令輸出。
[mozhiyan@localhost ~]$ cd code(3)唯讀變數:[mozhiyan@localhost code]$ log=$(cat log.txt)
[mozhiyan@localhost code]$ echo $log
[2017-09-10 06:53:22] 嚴長生正在編寫shell教程
[mozhiyan@localhost code]$ log=`cat log.txt`
[mozhiyan@localhost code]$ echo $log
[2017-09-10 06:53:22] 嚴長生正在編寫shell教程
[mozhiyan@localhost code]$
使用readonly命令可以將變數定義為唯讀變數,唯讀變數的值不能被改變。
下面的例子嘗試更改唯讀變數,結果報錯:
#!/bin/bash
myurl=""
readonly myurl
myurl=""
執行指令碼,結果如下:
/bin/sh: name: this variable is read only.(4)刪除變數:unset
使用unset命令可以刪除變數。語法:
unset variable_name變數被刪除後不能再次使用;unset 命令不能刪除唯讀變數。
舉個例子:
#!/bin/sh
myurl=""
unset myurl
echo $myurl
上面的指令碼沒有任何輸出。
(5)變數型別:
執行shell時,會同時存在三種變數:
1) 區域性變數
區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。
2) 環境變數
所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要的時候shell指令碼也可以定義環境變數。
3) shell變數
shell變數是由shell程式設定的特殊變數。shell變數中有一部分是環境變數,有一部分是區域性變數,這些變數保證了shell的正常執行
出處:
shell 學習記錄
1 以兩個破折號 來表示選項結尾的用法,源自system v。自此之後命令列上看起來像選項的任何專案,都將 一視同仁的當成引數處置。上面這個句話是什麼鬼意思?2 shell是別的三種命令 1 內建命令 比如cd echo test 2 shell函式 3 外部命令 shell變數 1 變數名字 字元...
shell學習記錄
1.shell 副檔名 sh 約定標記,告訴系統指令碼需要的直譯器,即哪一種shell 執行shell檔案的三種方法 test.sh bin sh test.sh bin bash test.sh注意 shell變數等號兩邊不能有空格,使用變數的時候加 符號字串擷取 與 刪除左邊字元 保留右邊字元 ...
shell學習記錄
段落 sed 的命令格式 sed command file sed command 動作 command1 file1 f test x test x then 這裡的關鍵有幾點 1 使用單個等號 2 注意到等號兩邊各有乙個空格 這是unix shell的要求 3 注意到 test x最後的x,這是...