欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Bash腳本內(nèi)置的調(diào)試方法技巧

 更新時間:2015年04月25日 11:35:54   投稿:junjie  
這篇文章主要介紹了Bash腳本內(nèi)置的調(diào)試方法技巧,本文介紹了調(diào)試技巧和幾個調(diào)試技巧,比如輸出行號的方法、只調(diào)試某段程序的方法,需要的朋友可以參考下

用 Bash 寫的腳本也可以進行調(diào)試,和 Python,Perl 等解釋型語言一樣。新建一個名為 servinfo 的腳本并增加可執(zhí)行權(quán)限:

復(fù)制代碼 代碼如下:

$ vi servinfo

#!/bin/bash

echo "Hostname: $(hostname)"
echo "Date: $(date)"
echo "Kernel: $(uname -mrs)"

$ chmod +x servinfo


用 bash -x 來調(diào)試上述腳本,Bash 先打印出每行腳本,再打印出每行腳本的執(zhí)行結(jié)果:
復(fù)制代碼 代碼如下:

$ bash -x servinfo
++ hostname
+ echo 'Hostname: vpsee'
Hostname: vpsee
++ date
+ echo 'Date: Thu Sep  3 19:33:48 SAST 2009'
Date: Thu Sep  3 19:33:48 SAST 2009
++ uname -mrs
+ echo 'Kernel: Linux 2.6.18-128.4.1.el5 i686'
Kernel: Linux 2.6.18-128.4.1.el5 i686

如果想同時打印行號的話,可以在腳本開頭加上:
復(fù)制代碼 代碼如下:

export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '

執(zhí)行結(jié)果為:
復(fù)制代碼 代碼如下:

$ bash -x servinfo
+ export 'PS4=+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
+ PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
++4:5:: hostname
+4:5:: echo 'Hostname: vpsee'
Hostname: vpsee
++4:6:: date
+4:6:: echo 'Date: Thu Sep  3 19:42:06 SAST 2009'
Date: Thu Sep  3 19:42:06 SAST 2009
++4:7:: uname -mrs
+4:7:: echo 'Kernel: Linux 2.6.18-128.4.1.el5 i686'
Kernel: Linux 2.6.18-128.4.1.el5 i686

如果只想調(diào)試其中幾行腳本的話可以用 set -x 和 set +x 把要調(diào)試的部分包含進來:
復(fù)制代碼 代碼如下:

#!/bin/bash

echo "Hostname: $(hostname)"
set -x
echo "Date: $(date)"
set +x
echo "Kernel: $(uname -mrs)"


這個時候可以直接運行腳本,不需要執(zhí)行 bash -x 了:
復(fù)制代碼 代碼如下:

$ ./servinfo
Hostname: vpsee
++ date
+ echo 'Date: Thu Sep  3 19:46:53 SAST 2009'
Date: Thu Sep  3 19:46:53 SAST 2009
+ set +x
Kernel: Linux 2.6.18-128.4.1.el5 i686

如果要調(diào)試一個非常復(fù)雜的 Bash 腳本的話,建議用專門的調(diào)試工具,比如:bashdb

相關(guān)文章

  • 如何使用 Shell 腳本執(zhí)行 .NET Core 應(yīng)用

    如何使用 Shell 腳本執(zhí)行 .NET Core 應(yīng)用

    這篇文章主要介紹了如何使用 Shell 腳本執(zhí)行 .NET Core 應(yīng)用,幫助大家更好的理解和使用shell 腳本,感興趣的朋友可以了解下
    2020-09-09
  • LINUX 生產(chǎn)環(huán)境搭建推薦教程

    LINUX 生產(chǎn)環(huán)境搭建推薦教程

    由于linux生產(chǎn)環(huán)境搭建步驟非常多,很繁瑣而且又是必不可少的步驟。雖然已經(jīng)做過很多次,但是由于步驟繁瑣,很容易忘記,下面小編抽個時間把linux生產(chǎn)環(huán)境搭建步驟記錄下來,分享在腳本之家平臺,以便需要之時使用
    2015-10-10
  • Shell編程之特殊變量的筆記小結(jié)

    Shell編程之特殊變量的筆記小結(jié)

    這篇文章主要介紹了Shell編程之特殊變量的筆記小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Linux下一些常用的Shell腳本整理

    Linux下一些常用的Shell腳本整理

    這篇文章主要介紹了Linux下一些常用的Shell腳本整理,很基礎(chǔ),印象不深的話隨看隨記:)需要的朋友可以參考下
    2015-07-07
  • Shell腳本監(jiān)控網(wǎng)站頁面正常打開情況

    Shell腳本監(jiān)控網(wǎng)站頁面正常打開情況

    這篇文章主要介紹了Shell腳本監(jiān)控網(wǎng)站頁面正常打開情況的代碼分享,本文實現(xiàn)監(jiān)控打開情況,若出錯則發(fā)送郵件通知,需要的朋友可以參考下
    2014-12-12
  • shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法

    shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法

    今天小編就為大家分享一篇shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • bash shell中的if-then語句

    bash shell中的if-then語句

    bash shell的 if 語句會運行 if 后面的那個命令,如果該命令的退出狀態(tài)碼是0,位于 then 部分的命令就會被執(zhí)行,這篇文章主要介紹了bash shell中的if-then語句,需要的朋友可以參考下
    2023-12-12
  • shell腳本--sed的用法詳解

    shell腳本--sed的用法詳解

    這篇文章主要介紹了shell腳本--sed的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Linux?screen命令使用示例

    Linux?screen命令使用示例

    Screen是一個全屏窗口管理器,它在多個進程(通常是交互式shell)之間多路傳輸物理終端。每個虛擬終端提供DEC?VT100終端的功能,以及ANSI?X3的幾個控制功能,本文給大家分享Linux?screen命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • 一個簡單的linux命令 mv

    一個簡單的linux命令 mv

    這篇文章主要介紹了一個簡單的linux命令mv,mv命令用于移動文件或者將文件改名,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論