SHELL腳本基礎速覽

變量的賦值:

Shell變量賦值從右到左進進行賦值


格式:NAME=value

變量的聲明:
 
export
變量名


 export NAME=value

SHELL腳本基礎速覽

declare –x 變量名

declare –x NAME=value

SHELL腳本基礎速覽

 

readonly 變量名
 

特定情況下需要使用到只讀變量


readonly NAME=value


  SHELL腳本基礎速覽
變量的調用:

 

在變量前加$,即可在一定環境下使用

  SHELL腳本基礎速覽
 
 若變量和其他字符組成新的字,這時就必須給變量加上大括號{},以更加清楚的顯示給shell,哪個是真正的變量,加以區分。

SHELL腳本基礎速覽

顯示變量值
echo
命令:需要注意的是,使用變量的時候必須在變量名前加上$符號。

SHELL腳本基礎速覽

set命令:顯示所有本地SHELL變量。包括SHELL中預定義了一些環境變量,且用戶自己已經定義過的本地變量也會在其中顯示。
  SHELL腳本基礎速覽


4
,使用unset命令刪除變量的賦值
 
SHELL腳本基礎速覽

Shell參數
 
$# 是傳給腳本的參數個數

 

$0 是腳本本身的名字

 

$1 是傳遞給該shell腳本的第一個參數

 

$2 是傳遞給該shell腳本的第二個參數

 

$@ 是傳給腳本的所有參數的列表

 

$* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9

 

$$ 是腳本運行的當前進程ID

 

$? 是顯示最后命令的退出狀態,0表示沒有錯誤,其他表示有錯誤


   
 

運行Shell程序的方法
 Shell
腳本可以通過shell程序是解釋執行的

程序的第一行一般為“#!/bin/bash”,其中# 表示該行是注釋

嘆號!告訴Shell運行嘆號之后的命令并用文檔的其余部分作為輸入,也就是運行/bin/bash并讓/bin/bash去執行Shell程序的內容。
 

執行Shell程序的方法有3種。
 
1
bash Shell程序文件名
 
這實際上是調用一個新的bash命令解釋程序,而把Shell程序文件名作為參數傳遞給它。新啟動的Shell將去讀指定的文件,可執行文件中列出的命令,當所有的命令都執行完后結束。
 
 
2
.用chmod命令使Shell程序成為可執行的
 
一個文件能否運行取決于該文檔的內容本身可執行且該文件具有執行權。對于Shell程序,當用編輯器生成一個文件時,系統賦予的許可權都是644(rw-r-r–),因此,當用戶需要運行這個文件時,只需要直接輸入文件名即可。
 

最好按下面的方式選擇:當剛創建一個Shell程序,對它的正確性還沒有把握時,應當使用第一種方式進行 調試。

當一個Shell程序已經調試好時,應把它固定下來,以后只要輸入相應的文件名即可,并可被另一個程序所調用。
 
bash
程序的調試
 
Shell
程序的調試主要是利用bash命令解釋程序的選擇項。調用bash的形式是:
 
bash –
選擇項Shell程序文件名
 
幾個常用的選擇項是:
 
-e
如果一個命令失敗就立即退出。
 
-n
讀入命令但是不執行它們。
 
-u
置換時把未設置的變量看做出錯。
 
-x
執行命令時把命令和它們的參數顯示出來。

原創文章,作者:sean0910,如若轉載,請注明出處:http://www.www58058.com/73340

(0)
sean0910sean0910
上一篇 2017-04-14
下一篇 2017-04-15

相關推薦

  • 系統日志和loganalyzer

    作為運維人員,熟悉系統日志是一項基本功。本文將介紹centos6的系統日志rsyslog及loganalyzer工具。 簡介 系統日志:記錄歷史事件,通常都是按時間順序將發生的事件予以記錄,linux上的日志分為syslogd(系統進程相關日志)和klogd(內核事件日志) centos5:syslog    缺點:不能進行并行數據存儲,…

    Linux干貨 2016-03-20
  • ip ss route nmcli netstart 命令匯總

    route命令 路由管理命令 查看:route -n [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.101.0 0.0.0.0 255.255.255.0 U 1 0 0 e…

    Linux干貨 2017-05-07
  • Linux的終端類型

    1、串行端口終端(/dev/ttySn):       串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。計算機把每個串行端口都看作是一個字符設備。有段時間這些串行端口設備通常被稱為終端設備,因為那時它的最大用途就是用來連接終端。這些串行端口所對應的設備名稱是/dev…

    Linux干貨 2016-10-14
  • N28-第三周

    1. 列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。
    2. 取出最後登入到當前系統的用戶的相關信息。
    3. 取出當前系統上被用戶當做其默認shell的最多的那個shell。
    4. 將/etc/passwd中的第三個字段數值最大的後10個用戶的信息全部改為大寫後保存至/tmp/maxusers.txt文件中。
    5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6. 列出/etc目錄下所有以.conf結尾的文件的文件名,並將其名字轉換為大寫後保存至/tmp/etc.conf文件中。
    7. 顯示/var目錄下一級子目錄或文件的總各數。
    8. 取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9. 將/etc/fstab和/etc/issue文件的內容合併為同一個內容後保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法並完成以下練習:
    (1) 創建組distro,其GID為2016。
    (2) 創建用戶mandriva,其ID號為1005,基本組為distro。
    (3) 創建用戶mageia,其ID號為1100,家目錄為/home/linux。
    (4) 給用戶mageia添加密碼,密碼為mageedu。
    (5) 刪除mandriva,但保留其家目錄。
    (6) 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin。
    (7) 修改slackware的默認shell為/bin/tcsh。
    (8) 為用戶slackware新增附加組admins。

    2017-12-19
  • N25-第八周作業

    第八周 1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示; #!/bin/bash # ip=172.16.250. for i in {1..254}; do if ping -w 1 -c 1 $ip$i &> /dev/n…

    Linux干貨 2017-03-09
  • N25-第十一周作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。   以Bob和Alice安全通訊為例:     Bob<———>Alice    1. Bob要和Alice安全通信首先要取得對方的公鑰,即對方的證書,并驗證證書的合法性。驗證過程和內容: &n…

    Linux干貨 2017-03-20
欧美性久久久久