Shell(bash)指令碼入門

2021-10-25 11:28:16 字數 1650 閱讀 7818

執行許可權和路徑

依舊摘自阮大佬的bash教程,這裡僅做個人學習記錄。

script.sh word1 word2 word3
上面例子中,script.sh是乙個指令碼檔案,word1、word2和word3是三個引數。

$#:引數的數量

$1~$9:對應指令碼的第乙個引數到第九個引數

$@:全部的引數,引數之間使用空格分隔

$*:全部的引數,引數之間使用變數$ifs值的第乙個字元分隔,預設為空格,但是可以自定義。

如果指令碼的引數多於9個,那麼第10個引數可以用$的形式引用,以此類推。

下面是乙個指令碼內部讀取命令列引數的例子:

#!/bin/bash

# script.sh

echo

"全部引數:"

$@echo

"命令列引數數量:" $#

echo

'$0 = '

$0echo

'$1 = '

$1echo

'$2 = '

$2echo

'$3 = '

$3

執行結果如下:

$ ./script.sh a b c

全部引數:a b c

命令列引數數量:3

$0= script.sh

$1= a

$2= b

$3= c

bash 指令碼中,#表示注釋,可以放在行首,也可以放在行尾。

建議在指令碼開頭,使用注釋說明當前指令碼的作用,這樣有利於日後的維護。

命令執行結束後,會有乙個返回值。

0表示執行成功,非0(通常是1)表示執行失敗。

環境變數$?可以讀取前乙個命令的返回值。

利用這一點,可以在指令碼中對命令執行結果進行判斷:

cd

$some_directoryif[

"$?"

="0"];

then

rm *

else

echo

"無法切換目錄!" 1>

&2 exit 1

fi

注:fi為if語句的結束,相當於end

source命令最大的特點是在當前 shell 執行指令碼,不像直接執行指令碼時,會新建乙個子 shell。所以,source命令執行指令碼時,不需要export變數。

source命令的另乙個用途,是在指令碼內部載入外部庫

#!/bin/bash

source ./lib.sh

function_from_lib

source有乙個簡寫形式,可以使用乙個點.來表示:

注意:這兩個點之間是有空格的!

(待續~)

linux的shell(bash)指令碼學習

參考鏈結 shell 是乙個用c語言編寫的程式,它是使用者使用linux的橋梁。shell既是一種命令語言,又是一種程式語言。shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。shell 指令碼 shell script 是一種為shell編寫的指令...

shell Bash 基本語法概覽

bin bash 呼叫bash作為直譯器 read a 從終端讀入字串並存入a declare i a 宣告a為整型資料 shell變數預設為字串 expr 四則運算 c expr a b 對a和b的值進行四則運算,並把結果賦給c shell特殊字元 root提示符 代表直譯器 後跟注釋 普通使用者...

linux bash指令碼入門

最簡單的例子 hello world 幾乎所有的講解程式設計的書給讀者的第乙個例子都是 hello world 程式,那麼我們今天也就從這個例子出發,來逐步了解 bash。bin bash this is a very example echo hello world 這樣最簡單的乙個 bash 程...