Linux Shell指令碼的6中執行方式

2021-10-20 01:23:46 字數 877 閱讀 6456

建立乙個shell指令碼,方便說明:

# touch /tmp/test.sh

# chmod 755 /tmp/test.sh

# ll /tmp/test.sh

.代表當前路徑,/的意思就是在當前路徑下執行test.sh。

如果不加./,bash就會去path環境變數裡查詢,若查詢不到,會報錯找不到命令。

# cd /tmp

# ./test.sh

以絕對路徑的方式去執行shell指令碼。

# /tmp/test.sh
除了指定絕對路徑,也可以切換到shell指令碼的路徑,使用bash /tmp/test.sh或sh /tmp/test.sh執行指令碼

# bash /tmp/test.sh

# sh /tmp/test.sh

bash和sh這兩種方式的效果是一樣的,都是將test.sh作為引數傳給bash/sh命令來執行的,所以即使test.s**件沒有可執行許可權,一樣可以執行。

前四種方法都是在當前shell(成為父shell)開啟乙個子shell環境來執行指令碼,最後這兩種方法則是在當前shell中執行的。

方式說明

./test.sh

執行當前目錄下的指令碼

/tmp/test.sh

任意目錄下皆可執行指令碼

bash /tmp/test.sh

指令碼無需可執行許可權

sh /tmp/test.sh

同上./tmp/test.sh

在當前shell中執行指令碼

source /tmp/test.sh

同上

Linux shell指令碼(編輯中)

shell是乙個程式,是使用者和linux核心溝通的橋梁 bin bash 其中 不是注釋,而是告訴作業系統將執行此指令碼所用的直譯器的名字。syntax on set hlsearch set tabstop 4 set autoindent 可以去掉冒號,新增到 vimrc中 bin bash ...

Linux shell指令碼中shift的用法說明

原文 shift命令用於對引數的移動 左移 通常用於在不知道傳入引數個數的情況下依次遍歷每個引數然後進行相應處理 常見於linux中各種程式的啟動指令碼 示例1 依次讀取輸入的引數並列印引數個數 run.sh bin bash while 0 do echo 第乙個引數為 1,引數個數為 shift...

Linux shell指令碼中if判斷的條件

基本上和其他指令碼語言一樣。沒有太大區別。不過值得注意的是。裡面的條件判斷。1.字串判斷str1 str2 當兩個串有相同內容 長度時為真 str1 str2 當串str1和str2不等時為真 n str1 當串的長度大於0時為真 串非空 z str1 當串的長度為0時為真 空串 str1 當串st...