Shell指令碼(三) Shell指令碼入門

2021-09-26 02:38:29 字數 1553 閱讀 6959

1.指令碼格式

指令碼以#!/bin/bash開頭(指定解析器)

2.第乙個shell指令碼:helloworld

(1)需求:建立乙個shell指令碼,輸出helloworld

(2)案例實操:

[atguigu@hadoop101 datas]$ touch helloworld.sh

[atguigu@hadoop101 datas]$ vi helloworld.sh

在helloworld.sh中輸入如下內容

#!/bin/bash

echo "helloworld"

(3)指令碼的常用執行方式

第一種:採用bash或sh+指令碼的相對路徑或絕對路徑(不用賦予指令碼+x許可權)

sh+指令碼的相對路徑

[atguigu@hadoop101 datas]$ sh helloworld.sh

helloworld

sh+指令碼的絕對路徑

[atguigu@hadoop101 datas]$ sh /home/atguigu/datas/helloworld.sh

helloworld

bash+指令碼的相對路徑

[atguigu@hadoop101 datas]$ bash helloworld.sh

helloworld

bash+指令碼的絕對路徑

[atguigu@hadoop101 datas]$ bash /home/atguigu/datas/helloworld.sh

helloworld

第二種:採用輸入指令碼的絕對路徑或相對路徑執行指令碼(必須具有可執行許可權+x)

(a)首先要賦予helloworld.sh 指令碼的+x許可權

[atguigu@hadoop101 datas]$ chmod 777 helloworld.sh

(b)執行指令碼

相對路徑

[atguigu@hadoop101 datas]$ ./helloworld.sh

helloworld

絕對路徑

[atguigu@hadoop101 datas]$ /home/atguigu/datas/helloworld.sh

helloworld

注意:第一種執行方法,本質是

bash

解析器幫你執行指令碼,所以指令碼本身不需要執行權

限。第二種執行方法,本質是指令碼需要自己執行,所以需要執行許可權。

3.第二個shell指令碼:多命令處理

(1)需求:

在/home/atguigu/目錄下建立乙個banzhang.txt,在banzhang.txt檔案中增加「i love cls」。

(2)案例實操:

[atguigu@hadoop101 datas]$ touch batch.sh

[atguigu@hadoop101 datas]$ vi batch.sh

在batch.sh中輸入如下內容

#!/bin/bash

cd /home/atguigu

touch cls.txt

echo "i love cls" >>cls.txt

shell指令碼學習 三

time for i in seq 11111 do count echo expr length done time 表示打出當前指令碼執行時間,後面的語句 表示求字元長度 變數的數值計算 a xx b 只能計算整數 變數在前,先輸出變數值,變數在後,就是先運算後輸出變數的值 表示冪運算 判斷檔案...

Shell指令碼程式設計(三)

shell變數 3 預定義變數 shell程式設計內事先定義了一些變數,使用者只能使用這些變數而不能重新定義它們。所有的預定義變數都由 符號和另乙個符號構成,常用的預定義變數如下 命令列引數的個數 所有命令列引數 不計 0,同 前乙個命令的退出狀態 所有命令列引數 不計 0,同 正在執行的程序id號...

shell 指令碼學習 三

printf 命令的語法 預設不會像 echo 一樣自動新增換行符 printf format string arguments.format sting 格式控制字串 arguments 為引數列表 bin bash printf 10s 8s 4s n 姓名 性別 體重kg printf 10s...