shell指令碼除錯 11

2021-10-08 00:05:05 字數 2990 閱讀 4948

1、使用dos2unix命令處理在windows下開發的指令碼

2、使用echo命令除錯

3、使用bash命令引數除錯

[root@ks ~]# sh [-nvx] nginx.sh

引數說明:

-n:不會執行該指令碼,僅查詢指令碼語法是否有問題,並給出錯誤提示

-v:在執行指令碼時,先將指令碼的內容輸出到螢幕上,然後執行指令碼。如果有錯誤,也會給出錯誤提示。

-x:將執行的指令碼內容及輸出顯示到螢幕上,這是對除錯很有用的引數

[root@manager day6]# sh -n 1.sh

[root@manager day6]# sh -v 1.sh

#!/bin/bash#**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

***#author: pyy

#date: 2020-06-25

#filename: 1.sh#**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

***i=

1#while [ $i -le 10 ]

#while ((i<=10))

until (

(i>10)

)dolet sum+

=i let i++

done

echo "1+2+.....+10=$sum"1+

2+..

...+

10=55[root@manager day6]# sh -x 1.sh

+ i=1+

(( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ let sum+

=i+ let i+++(

( i>10)

)+ echo 1+2

+...

..+10

=551+

2+..

...+

10=55

4、使用set命令除錯部分指令碼內容

[root@manager day4]# cat test1.sh

#!/bin/bash#**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

***#author: pyy

#date: 2020-06-14

#filename: test1.sh#**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

***#給定乙個使用者,判斷其uid與gid是否一樣,如果一樣,就顯示該使用者為「good guy」 否則顯示為"bad guy"

read -p "請輸入乙個使用者名稱:" user_name

#開啟除錯功能

set -x

if id $user_name &

>

/dev/null

then

if[ $(id -u $user_name)

-eq $(id -g $user_name)

] then

echo "good guy"

else

echo "bod guy"

fielse

echo "$user_name is not exists"

fi#關閉除錯功能

set +x

[root@manager day4]# sh test1.sh

請輸入乙個使用者名稱:centos

+ id centos

++ id -u centos

++ id -g centos

+'['

1000

-eq 1000

']'+ echo 'good guy'

good guy

+ set +x

Shell 指令碼除錯

除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash foriin do echo i done echo script execu...

除錯shell指令碼

遇見莫名其妙的錯誤,先dos2uinux指令碼。echo命令是最有用的除錯指令碼工具之一。一般在可能出現問題的指令碼前後加入echo命令 使用bash命令引數進行除錯 引數 n 不會執行該指令碼,僅查詢指令碼語法是否有問題,並給出錯誤提示。v 在執行指令碼時,先將指令碼的內容輸出到螢幕上然後執行指令...

shell 指令碼除錯

發表於 2016 4 27 0 03 30 1693 人閱讀 分類 shell 除錯功能是每一門程式語言都應該實現的重要特性,每個系統程式設計師都應該了解bash的除錯選項 1.使用選項 x,啟動shell指令碼的跟蹤除錯功能,將執行的每一條命令和輸出的結果輸出 test.sh檔案 bin bash...