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...