日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一文搞懂shell腳本

1 、shell腳本介紹

  • 什么是shell腳本

一系列的shell命令的集合, 還可以加入一些邏輯操作(if else for) 將這些命令放入一個文件中.

  • 什么是shell命令?
  • ls
  • pwd
  • cd
  • chmod +x test.sh
  • shell腳本的基本格式
    • 命名格式
      • 一般命名規(guī)則 : xxxxx.sh (建議以.sh為后綴命名)
    • 書寫格式
# test.sh #是shell腳本中的注釋
# 第一行如果忘了了寫, 使用默認(rèn)的命令解析器 /bin/sh
#!/bin/bash # 指定解析shell腳本的時候使用的命令解析器 /bin/sh也可以
# 一系列的shell命令
ls
pwd
cp 
rm
  • shell腳本的執(zhí)行
# 執(zhí)行shell腳本
./xxx.sh
sh test.sh

2、 shell腳本中的變量

  • 普通變量(本地變量)
# 定義變量, 定義完成, 必須要賦值, =前后不能有空格
temp=666
# 普通變量只能在當(dāng)前進(jìn)程中使用
  • 環(huán)境變量——一般大寫
# 可以理解問全局變量, 在當(dāng)前操作系統(tǒng)中可以全局訪問
# 分類
 - 系統(tǒng)自帶的
 - PWD
 - SHELL
 - PATH
 - HOME
 - 用戶自定義的
 - 將普通變量提升為系統(tǒng)級別的環(huán)境變量
 GOPATH=/home/zoro/go/src - > 普通環(huán)境變量
 set GOPATH=/home/zoro/go/src - > 系統(tǒng)環(huán)境變量
 export GOPATH=/home/zoro/go/src
 ~/.bashrc
  • 位置變量
  • 執(zhí)行腳本的時候, 可以給腳本傳遞參數(shù), 在腳本內(nèi)部接收這些參數(shù), 需要使用位置變量
# 已經(jīng)存在的腳本test.sh
#!/bin/bash
echo "hello , world, $0"
echo "第一個參數(shù): $1"
echo "第2參數(shù): $2"
echo "第3個參數(shù): $3"
echo "第4個參數(shù): $4"
echo "第5個參數(shù): $5"
echo "第6個參數(shù): $6"
# 執(zhí)行test.sh
$ ./test.sh 11 22 3 4 5 6 aa bb
hello , world, ./test.sh
第一個參數(shù): 11
第2參數(shù): 22
第3個參數(shù): 3
第4個參數(shù): 4
第5個參數(shù): 5
第6個參數(shù): 6
  • 特殊變量
    • $#: 獲取傳遞的參數(shù)的個數(shù)
    • $@: 給腳本傳遞的所有的參數(shù)
    • $?: 腳本執(zhí)行完成之后的狀態(tài), 失敗>0 or 成功=0
    • $$: 腳本進(jìn)程執(zhí)行之后對應(yīng)的進(jìn)程ID
# test.sh
#!/bin/bash
echo "hello , world, $0"
echo "第一個參數(shù): $1"
echo "第2參數(shù): $2"
echo "第3個參數(shù): $3"
echo "第4個參數(shù): $4"
echo "第5個參數(shù): $5"
echo "第6個參數(shù): $6"
echo "傳遞的參數(shù)個數(shù): $#"
echo "傳遞的所有的參數(shù): $@"
echo "當(dāng)前腳本的進(jìn)程ID: $$" 

$ ./test.sh aa bb cc dd ee ff 8 9 0 
    hello , world, ./test.sh
    第一個參數(shù): aa
    第2參數(shù): bb
    第3個參數(shù): cc
    第4個參數(shù): dd
    第5個參數(shù): ee
    第6個參數(shù): ff
    傳遞的參數(shù)個數(shù): 9
    傳遞的所有的參數(shù): aa bb cc dd ee ff 8 9 0
    當(dāng)前腳本的進(jìn)程ID: 47946
# 腳本執(zhí)行狀態(tài)查看
$ echo $?
0 -> 成功
非0 -> 失敗
  • 普通變量取值
# 變量定義
value=123   # 默認(rèn)以字符串處理
value1 = "123 456"
echo $value
# 如何取變量的值:
 - $變量名
 - ${變量名}
  • 取命令執(zhí)行之后的結(jié)果值
# 取值的兩種方式:
var=$(shell命令)
var=`shell命令`
  • 引號的使用
# 雙引號
echo "當(dāng)前文件: $var"
- 打印的時候會將var中的值取出并輸出
# 單引號
echo '當(dāng)前文件: $var'
- 將字符串原樣輸出

3 、條件判斷和循環(huán)

  • shell腳本中的if條件判斷
# if語句
# 注意事項(xiàng):
 - if 和 []直接有一個空格
 - [ 條件 ] : 條件的前后都有空格
 - else if => elif
 - 
if [ 條件判斷 ];then
 邏輯處理 -> shell命令
 xxx
 xxxx
 xxxx
fi
# ===================
if [ 條件判斷 ]
then
 邏輯處理 -> shell命令
 xxx
 xxx
fi
# if ... elif .. fi
if [ 條件判斷 ];then
 邏輯處理 -> shell命令
 xxx
 xxxx
 xxxx
elif [ 條件判斷 ];then
 shell命令
elif [ 條件判斷 ];then
 shell命令
elif [ 條件判斷 ];then
 shell命令
else
 shell命令
fi

//-------------------------------------------------------------------------------
# if.sh
#!/bin/bash
# 需要對傳遞到腳本內(nèi)部的文件名做判斷
if [ -d $1 ];then
 echo "$1 是一個目錄!" 
elif [ -s $1 ];then
 echo "$1 是一個文件, 并文件不為空"
else
 echo "$1 不是目錄, 有可能不存在, 或文件大小為0"
fi
    • shell腳本for循環(huán)
# shell中的循環(huán) for/ while
# 語法: for 變量 in 集合; do;done
for var in 集合;do
 shell命令
done# for.sh
#!/bin/bash
# 對當(dāng)前目錄下的文件進(jìn)行遍歷
list=`ls`
for var in $list;do
 echo "當(dāng)前文件: $var"
 echo '當(dāng)前文件: $var' 
done

4、shell腳本中的函數(shù)

# 沒有函數(shù)修飾, 沒有參數(shù), 沒有返回值
# 格式
funcName(){
    # 得到第一個參數(shù)
    arg1=$1
    # 得到第2個參數(shù)
    arg2=$2
    函數(shù)體 -> shell命令 + 邏輯循環(huán)和判斷
    mkdir /root/abc
}
# 沒有參數(shù)列表, 但是可以傳參
# 函數(shù)調(diào)用
funcName aa bb cc dd
# 函數(shù)調(diào)用之后的狀態(tài): 
0 -> 調(diào)用成功
非0 -> 失敗
#!/bin/bash
# 判斷傳遞進(jìn)行來的文件名是不是目錄, 如果不是, 創(chuàng)建...
# 定義函數(shù)
is_directory()
{
    # 得到文件名, 通過參數(shù)得到文件名
    name=$1
    if [ -d $name ];then
        echo "$name 是一個目錄!"
    else
        # 創(chuàng)建目錄
        mkdir $name
        if [ 0 -ne $? ];then
            echo "目錄創(chuàng)建失敗..."
            exit
        fi  
        echo "目錄創(chuàng)建成功!!!"                                                                                         
    fi  
}

# 函數(shù)調(diào)用
is_directory $1

分享到:
標(biāo)簽:腳本 shell
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定