校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 入門shell腳本基礎及原理

入門shell腳本基礎及原理

熱門標簽:AI智能電銷機器人壞處 合肥電銷外呼系統供應商 如何申請400的電話呀 電話機器人對家居行業幫助大嗎 黑暗之魂3地圖標注 蘭州電銷機器人加盟 電商外呼系統排名 沈陽ai電銷智能機器人 地圖標注審核周期

1.特殊變量

$#:查看變量參數的個數
$0:查看腳本的名字
$!:查看shell后臺的pid
$@:查看傳遞腳本所有參數的列表
$*:查看所有參數的列表,單字符串形式顯示
$$:腳本本身進程的ID
$?:上一條命令的結果,顯示0則成功,不是0則失敗

2.內部環境變量

$PATH 
SHELL           當前使用的shell
UID 			當前的用戶環境 {0|其它數字}={root|其它用戶}
HOME            當前使用的用戶目錄
PWD        		當前的目錄	
HISTFILE       	歷史命令路徑
PS1					#[\u@\h \W]\$    用戶@主機名\目錄\$

3.整數以及字符判斷

3.1整數判斷

-eq       測試倆個整數是否相等      (equal)
-ne       測試倆個整數是否不等		(unequal)
-gt       測試一個數是否大于一個數 (greater than)
-lt		  測試一個數是否小于一個數 (less than)
-ge	      測試一個數大于或等于 
-le       測試一個數小于或等于

3.2字符測試

=~   測試是否被正則表達式匹配
-z "string" 檢測字符是否為空,空則真,不空則假    如: [ -z "" ]為真空則為真
-n "string" 檢測字符是否不空,不空則真,不空則假
字符相比較大小用[[  ]],比的是第一個字母(a-zA-Z)都是大寫或者都是小寫比較ascii值 越大則越大
有大寫又有小寫則A>a B>b   但是A不大于b的情況
[root@slave02 ~]# [[ "A"  "B" ]]
[root@slave02 ~]# echo $?
0
[root@slave02 ~]# [[ "a"  "b" ]]
[root@slave02 ~]# echo $?
0

4.文件判斷

-e:文件是否存在   
-b:測試是否塊設備文件
-c:測試是否字符設備文件
-f:測試是否普通文件
-d:測試是否目錄
-h:測試是否符號鏈接文件
-L:測試是否是符號鏈接文件
-p:測試是否是命名管道文件
-S:測試是否是套接字文件
權限相關:
-r 讀
-w 寫
-x 執行
特殊權限
-g
-u
-k
等

5.read輸入

選項:
-p:指定提示符
-t:指定提示等待的時間(秒)

6.if判斷

多分支:
if [ 條件 ];then
	statement1
​	.....
elif  [ 條件2 ];then
​	statement2
​	....
else
​	statement3
​	....
fi

7.案例選擇判斷

case $變量名 in            
	'value1')                
		 statement                
		 ...                
 ;;            
	'value2')                
 		statement                
 		...                
 ;;            
*)                
 		statement                
 		..                
 ;;        
esac

#case支持的通配符:
    *           //任意長度任意字符
    ?           //任意單個字符
    []          //指字范圍內的任意單個字符
   start|START  //倆種選擇

8.for循環

第一種:
for  ((expr1;expr2;expr3))      # expr1:初始值條件  
								#expr2:循環的范圍進行退出  
								#expr3:變量的值使用
{
​	循環體
}
for ((expr1;expr2;expr3));do            
​	循環體
done
第二種:
for  變量  in 列表; do
​	循環體
done

9.while循環

while循環用于不知道循環次數的場景,注意有退出條件
while [ 條件 ];do
	statement
	.....
done

10.深入練習

1.寫一個腳本,輸入三個數字進行相應的加減乘除

[root@slave02 ~]# cat script01.sh 
#!/bin/bash
a=$1
b=$2
c=$3
num1=$[$a+$b+$c]
num2=$[$a-$b-$c]
num3=$[$a*$b*$c]
echo "$a + $b + $c" = $num1
echo "$a - $b - $c" = $num2
echo "$a * $b * $c" = $num3
awk "BEGIN{printf \"$a/$b/$c=%.2f\n\",$a/$b/$c}"
[root@slave02 ~]# source script01.sh 100 10 9
100 + 10 + 9 = 119
100 - 10 - 9 = 81
100 * 10 * 9 = 9000
100/10/9=1.11

2.猜數字游戲

規則:指定一個數字,只要猜到了這個數字則過關,否則顯示數字大了或者數字小了

[root@master ~]# cat test03.sh 
#!/bin/bash
nums=99
read -p "please enter a number: " num
if [ $num -gt $nums ];then
        echo "數字大了"
elif [ $num -lt $nums ];then
        echo "數字小了"
else
        echo "猜對"
fi        
[root@master ~]# . test03.sh 
please enter a number: 10
數字小了
[root@master ~]# . test03.sh
please enter a number: 100
數字大了
[root@master ~]# . test03.sh
please enter a number: 99
猜對

3.寫一個腳本,讓nginx服務設置開機自啟

#$0是nginx本身 $1是變量對應著下面的start|stop|restart|status
[root@192 init.d]# pwd
/etc/init.d
[root@192 init.d]# cat nginx 
#!/bin/bash
case $1 in
        'start')
          /usr/local/nginx/sbin/nginx
          ;;
        'stop')
          /usr/local/nginx/sbin/nginx -s stop
          ;;
        'restart')
        /usr/local/nginx/sbin/nginx -s stop
        /usr/local/nginx/sbin/nginx
          ;;
        'status')
          num=$(ps -ef |grep -v 'grep'|grep -c nginx:)
          if [ $num -eq 0 ];then
                 echo "nginx is stoped" 
          else
                 echo "nginx is running"
          fi
          ;;
        *)
              echo "Usage: service $0 start|stop|restart|status"
          ;;          
esac
		#當判斷有nginx進程數量則認為開啟服務,否則認為服務開啟失敗

4.利用for循環,創建user序號1-100的用戶

#創建用戶user1-100
[root@master ~]# cat test05.sh 
#!/bin/bash
for (( i=1;i=100;i++));do
        useradd user$i
        id user$i >/dev/null
        if [ $? -eq 0 ];then  #只要判斷用戶成功,$?才會顯示0,顯示0則代表執行下一條命令,否則顯示user以及存在
                echo "success"
        else	
        		echo "user is exis"    
        fi
done

5.利用while循環,計算1+2…100的值

[root@slave02 ~]# cat which.sh 
#!/bin/bash
s=0                 #初始值0
i=1					#判斷的數值,最終到100停止
while [ $i -le 100 ];do
s=$[$s+$i]			 
i=$[$i+1]            #自增加數
done
echo $s
[root@slave02 ~]# source which.sh 
5050
						#隨便輸入一個數字進行計算的話,把100改為$1即可

6.apache簡單的一個編譯部署腳本

1.一般項目或者腳本,文件,放在相應的位置里,方便查找
[root@slave02 tmp]# pwd
/tmp
[root@slave02 tmp]# ls
apache
[root@slave02 apache]# ls
install_apache.sh  soft
[root@slave02 soft]# ls
apr-1.7.0.tar.bz2   apr-util-1.6.1.tar.bz2    httpd-2.4.48.tar.bz2  httpd.service
[root@slave02 apache]# cat install_apache.sh #!/bin/bash echo "歡迎使用此腳本" apachedir=/usr/local/apache if [ $UID -ne 0 ];then
        echo "伙計,請使用管理員身份運行"
fi
echo "正在安裝依賴包..."
yum -y install epel-release  bzip2 "@Development Tools"  >/dev/null
yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make  >/dev/null
id apache >/dev/null
if [ $? -ne 0 ];then
        useradd -r -M -s /sbin/nologin apache
fi
cd /tmp/apache/soft/
tar -xf apr-1.7.0.tar.bz2
tar -xf apr-util-1.6.1.tar.bz2
tar -xf  httpd-2.4.48.tar.bz2
sed -i '/ $RM "$cfgfile"/d' apr-1.7.0/configure
echo "正在編譯安裝apr,請聽聽歌放松放松......." 
cd apr-1.7.0/
[ ! -d /usr/local/apr ]
if [ $? -eq 0 ];then
        ./configure --prefix=/usr/local/apr  make  make install >/dev/null
else
        echo "apr已經安裝"
fi
cd ../apr-util-1.6.1/
[ ! -d /usr/local/apr-util ]
if [ $? -eq 0 ];then
        ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr  make  make install /dev/null
else
        echo "apr-util已經安裝"
fi
cd ../httpd-2.4.48/
[ ! -d /usr/local/apache/ ]
if [ $? -eq 0 ];then
./configure --prefix=$apachedir \

        --sysconfdir=/etc/httpd24 \

        --enable-so \

        --enable-ssl \

        --enable-cgi \

        --enable-rewrite \

        --with-zlib \

        --with-pcre \

        --with-apr=/usr/local/apr \

        --with-apr-util=/usr/local/apr-util/ \

        --enable-modules=most \

        --enable-mpms-shared=all \

        --with-mpm=prefork
        make  make install >/dev/null
else
        echo "httpd已經安裝"
fi
cd
#有影響的加判斷,沒影響的忽略
echo "export PATH=$apachedir/bin:\$PATH"   > /etc/profile.d/httpd.sh
ln -s $apachedir/include/ /usr/include/apache >/dev/null
grep 'apache/man' /etc/man_db.conf   >/dev/null

if [ $? -eq 1 ];then
        sed -i "20aMANDATORY_MANPATH   $apachedir/man" /etc/man_db.conf
else
        echo "apache is help exists"
fi

[ ! -f /usr/lib/systemd/system/httpd.service ]
if  [ $? -eq 0 ];then
        cp /clq/apache/soft/httpd.service /usr/lib/systemd/system/
else
        echo "已經存在文件跳過"
fi
systemctl daemon-reload
systemctl enable --now httpd
num02=$(ps -ef |grep -v 'grep'|grep -c httpd)
if [ $num02 -eq 0 ];then
        echo "httpd自啟失敗"
else
        echo "httpd自啟成功"
fi
echo "歡迎下次使用"                                 
[root@slave02 apache]# chmod +x install_apache.sh 
[root@slave02 apache]# source install_apache.sh 
[root@slave02 apache]# source install_apache.sh 
歡迎使用此腳本
正在安裝依賴包...
正在編譯安裝apr,請聽聽歌放松放松.......
apr以及安裝
apr-util以及安裝
httpd已經安裝
apache is help exists
已經存在文件跳過
httpd自啟成功
歡迎下次使用
[root@slave02 ~]# systemctl status httpd.service 
● httpd.service - Start http
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-09-04 17:45:33 CST; 5h 57min ago
 Main PID: 834761 (httpd)
    Tasks: 7 (limit: 5782)
   Memory: 6.3M
   CGroup: /system.slice/httpd.service
           ├─834761 /usr/local/apache/bin/httpd -k start
           ├─835358 /usr/local/apache/bin/httpd -k start
           ├─835359 /usr/local/apache/bin/httpd -k start
           ├─835360 /usr/local/apache/bin/httpd -k start
           ├─835361 /usr/local/apache/bin/httpd -k start
           ├─835362 /usr/local/apache/bin/httpd -k start
           └─836063 /usr/local/apache/bin/httpd -k start
[root@slave02 ~]# ss -antl
State         Recv-Q        Send-Q               Local Address:Port               Peer Address:Port        Process        
LISTEN        0             128                        0.0.0.0:22                      0.0.0.0:*                          
LISTEN        0             128                              *:80                            *:*                          
LISTEN        0             128                           [::]:22                         [::]:*   

以上就是入門shell腳本基礎解析的詳細內容,更多關于shell腳本的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • shell腳本語言的使用(超全超詳細)
  • Linux Shell腳本系列教程(二):終端打印命令詳解
  • Linux shell傳遞參數實現原理及代碼實例
  • shell腳本4種執行方式
  • linux反彈shell的原理詳解
  • 自己常用的一些shell腳本分享

標簽:通遼 黔南 隴南 河池 黔南 淮南 河北 常州

巨人網絡通訊聲明:本文標題《入門shell腳本基礎及原理》,本文關鍵詞  入門,shell,腳本,基礎,及,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《入門shell腳本基礎及原理》相關的同類信息!
  • 本頁收集關于入門shell腳本基礎及原理的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩免费成人网| 美女尤物国产一区| 欧美日韩午夜在线视频| 日韩精品电影在线| 欧美国产精品一区二区| 91精品国产综合久久香蕉麻豆| 久久成人18免费观看| 成人欧美一区二区三区小说| 日韩一区二区高清| 成人国产视频在线观看| 美女视频免费一区| 香蕉成人啪国产精品视频综合网| 精品国产凹凸成av人网站| 色天天综合久久久久综合片| 国产在线精品视频| 日本中文字幕一区二区视频| 一区二区成人在线| 日韩一区有码在线| 国产精品精品国产色婷婷| 精品久久99ma| 精品日韩99亚洲| 欧美大肚乱孕交hd孕妇| 欧美理论片在线| 国产69精品一区二区亚洲孕妇| 免费观看久久久4p| 蜜桃久久av一区| 男人的天堂久久精品| 美日韩一区二区| 国产乱一区二区| 成人精品一区二区三区中文字幕| 国产成人免费xxxxxxxx| 国产综合久久久久久久久久久久| 激情欧美一区二区三区在线观看| 激情综合色播五月| 成人美女在线观看| 色综合亚洲欧洲| 欧美精三区欧美精三区| 欧美一区二区三区四区在线观看| 欧美一区永久视频免费观看| 精品sm在线观看| 亚洲色图视频网| 天堂成人国产精品一区| 黄色小说综合网站| av电影在线观看一区| 欧美精品自拍偷拍动漫精品| 久久久国产午夜精品 | 日本伊人午夜精品| 国产传媒欧美日韩成人| 欧美亚洲一区二区三区四区| 欧美电影免费观看高清完整版| 一区在线中文字幕| 久久精品国产第一区二区三区| 99久久久久久| 精品成人私密视频| 日本最新不卡在线| 欧洲精品在线观看| 国产精品久久久久久久久快鸭 | 国产精品拍天天在线| 热久久免费视频| 在线观看亚洲精品| 中文字幕的久久| 国产一区二区三区免费在线观看| 欧美一级高清片| 丝袜美腿亚洲色图| 日本精品裸体写真集在线观看| 国产精品人成在线观看免费| 狠狠狠色丁香婷婷综合激情| 4hu四虎永久在线影院成人| 亚洲综合精品久久| 欧美亚洲一区二区在线| 亚洲欧美电影一区二区| 91久久精品午夜一区二区| 亚洲综合色区另类av| 欧美日韩在线电影| 日韩精品电影一区亚洲| 69久久夜色精品国产69蝌蚪网| 日本视频免费一区| 丝袜a∨在线一区二区三区不卡| 国内不卡的二区三区中文字幕| 久久久亚洲国产美女国产盗摄 | 亚洲视频一区二区在线| 国产麻豆精品theporn| 精品福利二区三区| 成人av电影免费在线播放| 中日韩av电影| 成人免费看视频| 成人欧美一区二区三区在线播放| 国产成人在线视频网址| 亚洲美女精品一区| 欧美午夜电影网| 国产美女娇喘av呻吟久久| 国产精品看片你懂得| 欧美性生活影院| 国产精品一区二区在线播放| 99久久久精品| 国产一区不卡在线| 国产一区二区三区电影在线观看| 日韩精品国产精品| 五月天久久比比资源色| 亚洲丝袜另类动漫二区| 久久精品人人做人人爽97| 日韩你懂的在线观看| 欧美日韩国产在线播放网站| 一本色道久久综合狠狠躁的推荐| 美女精品一区二区| 毛片av中文字幕一区二区| 天堂一区二区在线免费观看| 亚洲免费色视频| 日韩久久一区二区| 亚洲欧洲制服丝袜| 亚洲精品成人少妇| 亚洲精品网站在线观看| 亚洲第一精品在线| 日本伊人精品一区二区三区观看方式| 国产精品女同互慰在线看| 国产精品青草久久| 亚洲国产一区二区三区| 国产伦精品一区二区三区免费迷| www.日韩av| 成人福利在线看| 成人蜜臀av电影| 久久中文字幕电影| 性做久久久久久免费观看| 成人国产免费视频| 精品日韩一区二区| 天天影视涩香欲综合网 | 成人黄色综合网站| 日韩欧美国产高清| 一级做a爱片久久| 卡一卡二国产精品| 色悠悠久久综合| 久久久影视传媒| 日本欧美在线看| 99re6这里只有精品视频在线观看| 日本高清无吗v一区| 国产欧美精品一区二区色综合朱莉| 亚洲精品国产精华液| 丁香婷婷综合网| 久久久久久免费| 日本不卡视频在线| 欧美理论片在线| 久久不见久久见免费视频1| 国产真实乱偷精品视频免| 国产午夜精品久久久久久免费视| 一本色道久久综合亚洲精品按摩| 欧美羞羞免费网站| 欧美日韩国产一区| 精品国内片67194| 欧美激情在线一区二区三区| 亚洲精品国产无套在线观| 日韩成人一级大片| 成人午夜视频在线观看| 欧美性三三影院| 久久综合久久综合九色| 亚洲人成人一区二区在线观看| 天天综合网天天综合色| 国产jizzjizz一区二区| 欧美日韩夫妻久久| 国产精品美女久久久久高潮| 91精品国产综合久久福利软件| 欧美一区二区大片| 国产精品女上位| 麻豆精品新av中文字幕| 91黄色免费版| 国产欧美日韩视频在线观看| 午夜精品一区在线观看| 99热这里都是精品| 精品国产麻豆免费人成网站| 亚洲精品va在线观看| 东方欧美亚洲色图在线| 日韩色在线观看| 亚洲精品美腿丝袜| 成人久久久精品乱码一区二区三区| 制服丝袜中文字幕一区| 亚洲情趣在线观看| 国产69精品久久99不卡| 日韩女优av电影| 婷婷夜色潮精品综合在线| 色综合久久久久综合体| 中文一区二区在线观看| 国产精品自拍一区| 欧美一卡2卡三卡4卡5免费| 亚洲免费观看高清完整版在线观看熊 | 91亚洲男人天堂| 国产午夜精品一区二区三区视频| 免费在线看成人av| 欧美色精品在线视频| 亚洲综合另类小说| 日本精品裸体写真集在线观看 | 日韩一区二区三区观看| 日韩精品视频网站| 欧美日韩一区不卡| 亚洲啪啪综合av一区二区三区| 成人va在线观看| 久久久www免费人成精品| 国内精品国产成人| 精品福利一区二区三区免费视频| 精品一区二区精品| 久久久久久久久久久电影| 国产很黄免费观看久久|