1. 程式人生 > >shell指令碼程式中的部分常用環境變數和引數變數的說明以及簡單shell指令碼示例

shell指令碼程式中的部分常用環境變數和引數變數的說明以及簡單shell指令碼示例

環境變數

  1. $HOME
    當前使用者的家目錄

  2. $PATH
    以冒號分隔的用來搜尋命令的目錄列表

  3. $PS1
    命令提示符,通常是$字元,但在bash中,可以使用一些更復雜的值。例如,字串[\[email protected]\h\w]$就是一個流行的預設值,它給出使用者名稱/機器名和當前的目錄名,當然也包括一個$提示符。

  4. $PS2
    二級提示符,用來表示後續的輸入,通常是 > 字元。

  5. $IFS
    輸入域分隔符。當shell讀取輸入時,它給出用來分隔單詞的一組字元,他們通常是空格,製表符和換行符。

  6. $0
    shell指令碼的名字

  7. $#
    傳遞給指令碼的引數的個數

  8. $$
    shell指令碼的程序號,指令碼程式通常會用它來生成一個唯一的臨時檔案,如/temp/tmpfile_$$


引數變數

  1. $1 , $2 , ...
    指令碼程式的引數

  2. $*
    在一個變數中列出所有的引數,各個引數之間用環境變數IFS中的第一個字元分隔開。如果IFS被修改了,那麼$*將命令列分隔為引數的方式將隨之改變。

  3. [email protected]
    它是$*的一種精巧的變體,它不使用IFS環境變數,所以即使IFS為空,引數也不會擠在一起。

shell指令碼示例

#!/bin/sh

salutation="Hello"
echo $salutation
set foo bar bam
echo "The program $0 is now running"
echo "The second parameter was $2"
echo "The first parameter was $1"
echo "The parameter list was $*"
echo "The user's home directory is $HOME"

echo "Please enter a new greeting"
read salutation

echo $salutation
echo "The script is complete"
exit 0<span style="color:#cc0000;">
</span>

測試結果


這個指令碼程式建立變數並顯示它的內容,然後顯示各種引數變數以及環境變數$HOME都已經存在並有了適當的值。

相關推薦

shell指令碼程式部分常用環境變數引數變數的說明以及簡單shell指令碼示例

環境變數 $HOME 當前使用者的家目錄$PATH 以冒號分隔的用來搜尋命令的目錄列表$PS1 命令提示符,通常是$字元,但在bash中,可以使用一些更復雜的值。例如,字串[\[email protected]\h\w]$就是一個流行的預設值,它給出使用者名稱/機

Shell程式設計-03-Shell的特殊變數擴充套件變數

特殊變數     在Shell中的特殊變數主要分別兩種位置引數變數、狀態變數兩種。 位置引數變數     Shell中的位置引數變數主要是指$0、$1、$#等,主要用於從命令列、函式或指令碼執行等地方傳遞引數。詳細說明如下所示: $0:獲取當前執行的Shell指令碼的檔名,如指令碼中包含路徑,則

linux shell “永久環境變數”、“臨時環境變數"普通變數"之完全解讀

        這個年代, 大家寫點書, 也無非就是為了搞點錢, 基本都是羅列一些知識點, 基本都是寫給已經會了的人看的。 真正用心寫書的人, 不多。 如果真正用心寫書, 且站在讀者的角度去寫, 那就少之又少了。         關於linux shell環境變數, 我看

Shell程式設計的“區域性變數“匯出變數

http://roclinux.cn/?p=1277  為了防止某些網站的惡性轉載,特在每篇文章前加入此資訊,還望讀者體諒。 === [正文開始] 如果你對子Shell的概念不甚瞭解,如果你對export的用法還沒吃透,如果你不知道Shell如何管理你的變數,請

解決Windows 10開始介面下所有程式部分圖示無法刪除問題

問題:Windows 10 系統開始介面的所有程式中,自己明明解除安裝或是Windows給使用者留下的一個動態連結圖示(實質上系統裡面根本沒有該類軟體),當你右鍵圖示選擇解除安裝選項時會彈出 “控制面板” 下的 “解除安裝程式”介面解決方法:1、開啟C盤,找到ProgramD

環境變數administrator的使用者變數系統變數

我們在java執行環境或android開發環境時,經常要配置環境變數,如圖所示, 這裡有administrator的使用者變數(U),和系統變數(S), 那麼,它們之間有什麼區別呢? 簡單的說,一個是當前使用者使用,你用其它使用者登陸,這個環境變數就不起作用了。 系統變數

sql優化(oracle)- 第二部分 常用sql用法註意事項

個數 its 用法 記錄 減少 合並 .com 語句 一個 第二部分 常用sql用法和註意事項 1. exists 和 in 2. union 和 union all

java成員變數區域性變數

1.成員變數   在類中定義,用來描述物件將要有什麼。 2.區域性變數 在類的方法中定義,在方法中臨時儲存資料 成員變數和區域性變數區別 1.作用域不同 成員變數的作用域在整個類內部都是可見的 區域性變數的作用僅限於定義它的方法、 2.初始值不同 jav

PHP的$_GET變數$_POST變數(二)

PHP中的$_GET變數和$_POST變數(二) $_POST變數 $_POST變數是一個數組,內容是由HTTP POST方法傳送的變數名和對應的值 $_POST變數用於收集來自method = "post"的表單中的值。從帶有POST方法

PHP的$_GET變數$_POST變數(一)

PHP中的$_GET變數和$_POST變數(一) $_GET變數 $_GET變數用於收集來自method=“get"的表單中的值,其中這些值能夠很直觀地在瀏覽器的位址列裡看到,例如,我使用百度搜索“PHP”的時候,瀏覽器發起請求的url為https:

windows 使用者變數系統變數的Path差別

  點選“我的電腦→屬性→高階系統設定”標籤的“環境變數”button,出現“環境變數”對話方塊,假設當前是以Administrator登入系統的使用者。對話方塊的上面為Administrator的使用者變數,對話方塊的以下為系統變數(即相當於系統中全部使用者的使用者變數)。

JavaThreadLocal,成員變數區域性變數

一.成員變數和區域性變數 1.程式例子: public class HelloThreadTest { public static void main(String[] args) { HelloThread r = new HelloThread();

java例項變數變數的區別

最近在學習java虛擬機器,有點搞不清例項變數和類變數的區別,特此記錄一下 例項變數 個人理解有點像成員變數,在建構函式的時候進行初始化 1.例項變數宣告在一個類中,但在方法、構造方法和語句塊之外; 2.當一個物件被例項化之後,每個例項變數的值就跟著確定; 3.例項變數在物件

J2EE一些常用的方法細節整理

1.setAttribute、getAttribute方法 方法 描述 注意點 void setAttribute(String name,Object o) 設定屬性的名稱及內容

JS最經典的全域性變數區域性變數問題(1、作用域作用域鏈 2、變數宣告提前)

var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test(); 1、程式的執行結果為:100

利用shell將mysql資料匯出到檔案執行mysql語句

利用mysqldump匯出mysql資料 匯出指定條件的資料庫 命令格式 mysqldump -u使用者名稱 -p密碼 -h主機 -P埠 資料庫名 表名 --where "sql語句" > 路徑 示例程式碼 #!/bin/bash #變數定義 host="127.0.

Python 的類變數例項變數(關鍵詞:Python/類變數/例項變數

類變數: class 語句的頂層進行賦值的變數,會被附加在類中,被所有例項所共享; 例項變數:附加在例項上的變數,不被共享,可通過這 2 種方式建立或修改: aInstance.name = sth 的形式; 類的例項方法中,self.name = sth 的形式。

JSP的全部變數區域性變數

重新整理問題: jsp區域性變數儲存在棧中,所以一定要有初值。當jsp執行很多次時,呼叫多少次就會重新初始化多少次,所以區域性變數的值始終保持不變。對於全域性變數來說,不管執行多少次,上一次對全域性變數的執行結果即為下一次執行的初始值。測試程式碼如下: <%@ p

python的例項變數變數以及區別

1,例項變數 :可以通過self點出的變數全部為例項變數。例項變數就是物件,呼叫方式:通過物件名呼叫。一個物件的值改變不影響另 外一個物件值 2,例項變數的生命週期:物件銷燬,物件執行完,物件被後面的覆蓋,例項變數就銷燬。, 3,類變數的生命週期:隨著類存在,是要類不刪除

Python的全域性變數區域性變數

當局部變數和全域性變數名字一樣時,依然是不同的變數,但是值一樣時,地址依然一樣。值不一樣時,地址不一樣,修改區域性變數,全域性變數的值依然不變,例如: num = 100 def test(): num = 99 print("區域性變數num