shell指令碼除錯中開啟set選項
設定除錯選項概覽
短符號 | 長符號 | 結果 |
---|---|---|
set -f | set -o noglob | 禁止特殊字元用於檔名擴充套件。 |
set -v | set -o verbose | 列印讀入shell的輸入行。 |
set -x | set -o xtrace | 執行命令之前列印命令。 |
1: [[email protected] shell]# cat set-x.sh2: #!/bin/bash
3: #set -x
4: echo -n "Can you write device drivers?"5: read answer
6: answer=$(echo $answer | tr [a-z] [A-Z])
7: if [ $answer = Y ]8: then
9: echo "Wow,you must be very skilled"10: else11: echo "Neither can I,I am just an example shell script"12: fi
13: [[email protected] shell]# sh set-x.sh14: Can you write device drivers?y
15: Wow,you must be very skilled
16: [[email protected] shell]# sh set-x.sh17: Can you write device drivers?n
18: Neither can I,I am just an example shell script
19: [[email protected] shell]#
1: [[email protected] shell]# sh set-x.sh
2: + echo -n 'Can you write device drivers?'
3: Can you write device drivers?+ read answer
4: y
5: ++ echo y
6: ++ tr '[a-z]' '[A-Z]'
7: + answer=Y
8: + '[' Y = Y ']'
9: + echo 'Wow,you must be very skilled'
10: Wow,you must be very skilled
11: [[email protected] shell]# sh set-x.sh
12: + echo -n 'Can you write device drivers?'
13: Can you write device drivers?+ read answer
14: n
15: ++ echo n
16: ++ tr '[a-z]' '[A-Z]'
17: + answer=N
18: + '[' N = Y ']'
19: + echo 'Neither can I,I am just an example shell script'
20: Neither can I,I am just an example shell script
21: [[email protected] shell]#
相關推薦
shell指令碼除錯中開啟set選項
設定除錯選項概覽 短符號 長符號 結果 set -f set -o noglob 禁止特殊字元用於檔名擴充套件。 set -v set -o verbose 列印讀入shell的輸入行。 set -x set -o xtrace 執行命令之前列
shell指令碼除錯心得
1 將指令碼產生的結果檔案和臨時檔案放入自己的資料夾下,不要放在原來的地方,好一起檢視 2 在除錯的時候,可以吧臨時檔案的刪除命令註釋掉,檢視臨時檔案具體的生成形式 3 在除錯的不明白的地方 用echo $var 4 用日誌txt,儲存echo的記錄和錯誤記錄 sh /xusywap.s
【linux】shell指令碼除錯技術
在使用gcc編譯keepalived原始碼的時候,需要執行configure生成Makefile,然後用make命令編譯。但是在這個過程中,configure檔案卻一直無法掃描到一個已經安裝的三方庫。無奈,只能檢視configure原始碼。configure其實就是一個shell指令碼,為了
shell指令碼檔案中for迴圈的兩種寫法
#!/bin/bash for (( i = 0; i <= 10; i++ )) ; do echo "The value is: $i" done echo -e "\nJourneys end in lovers' meeting."
shell指令碼實現定時開啟Apache服務
寫shell指令碼 #! /bin/bash case $1 in start) systemctl start httpd if [ $? -eq 0 ] t
Shell指令碼除錯技巧
本文全面系統地介紹了shell指令碼除錯技術,包括使用echo, tee, trap等命令輸出關鍵資訊,跟蹤變數的值,在指令碼中植入除錯鉤子,使用“-n”選項進行shell指令碼的語法檢查, 使用“-x”選項實現shell指令碼逐條語句的跟蹤,巧妙地利用shell的內建變數增強“-x”選項的
shell指令碼除錯模式(debug模式)
linux shell的除錯模式在實際應用中有很大作用,其啟用方式有多種,總結如下 1. 在呼叫指令碼的時候使用 sh +引數 +指令碼名 sh -x shell.script [[email&
總結三種Shell指令碼程式設計中避免SFTP輸入密碼的方法
最近程式設計中用到sftp上傳檔案,且需要用crontab預設定時上傳事件。而sftp不同於ftp,沒有提供選項如 -i 可以將密碼直接編碼程序序。使用sftp指令,會自動請求使用者輸入密碼。 總結一下可以避免sftp輸入密碼的三種方式: 1. lftp方式 LFTP
Shell指令碼 centOS7中自動安裝JDK
#切換到root許可權 sudo su #create java dir java_file="/usr/local/java" if [ ! -d "$java_file" ]; then mkdir $java_file fi cd /usr/local/j
shell指令碼除錯技術(轉)
本文全面系統地介紹了shell指令碼除錯技術,包括使用echo, tee, trap等命令輸出關鍵資訊,跟蹤變數的值,在指令碼中植入除錯鉤子,使用“-n”選項進行shell指令碼的語法檢查,使用“-x”選項實現shell指令碼逐條語句的跟蹤,巧妙地利用shell的內建變數增強
Shell指令碼除錯方法
Shell提供了一些用於除錯指令碼的選項,如: -n 讀一遍指令碼中的命令但不執行,用於檢查指令碼中的語法錯誤。 -x 提供跟蹤執行資訊,將執行的每一條命令和結果依次打印出來。 -v 一邊執行指令碼,一邊將執行過的指令碼命令列印到標準錯誤輸出(我理解的應該是為了達到無緩衝的目的)。
Shell程式設計-自定義函式和shell指令碼除錯
1.自定義函式函式代表著一個或一組命令的集合,表示一個功能模組,常用於模組化程式設計一下是關於函式的重要說明 在shell中,函式必須先定義,再呼叫 使用 return value來獲取函式的返回值 函式在當前shell中執行,可以使用指令碼中的變數函式的格
shell指令碼程式設計中for while until三種迴圈的使用方法
最後要介紹的是 shell script 設計中常見的"迴圈"(loop)。所謂的 loop 就是 script 中的一段在一定條件下反覆執行的程式碼。 bash shell 中常用的 loop 有如下三種: * for * while * until for l
shell指令碼除錯 -- 執行日誌1
# mymod_log while [[ ! -z "$1" ]];do# echo "arg: $1"; case "$1" in "noall") sed -e '/^\([ \t]*\)mydebug/d'\ -e
shell指令碼程式中的部分常用環境變數和引數變數的說明以及簡單shell指令碼示例
環境變數 $HOME 當前使用者的家目錄$PATH 以冒號分隔的用來搜尋命令的目錄列表$PS1 命令提示符,通常是$字元,但在bash中,可以使用一些更復雜的值。例如,字串[\[email protected]\h\w]$就是一個流行的預設值,它給出使用者名稱/機
shell 指令碼中set -e選項作用範圍
編寫shell指令碼沒多久,對於其許多命令的具體用法還不太熟悉。最近剛好有需求,就嘗試用指令碼去實現。其中就有用到set -e選項。 在用這個命令之前,也查過其功能,描述比較簡單:就是當命令以非零狀態退出時,則退出shell。主要作用是,當指令
如何在 Linux 中啟用 Shell 指令碼的除錯模式【轉】
指令碼是儲存在一個檔案的一系列命令。在終端上輸入一個個命令,按順序執行的方法太弱了,使用指令碼,系統中的使用者可以在一個檔案中儲存所有命令,反覆呼叫該檔案多次重新執行命令。 在學習指令碼或寫指令碼的初期階段,我們通常從寫小指令碼或者幾行命令的短指令碼開始,除錯這樣的指令
如何在 Shell 指令碼中執行語法檢查除錯模式【轉】
我們開啟了 Shell 指令碼除錯系列文章,先是解釋了不同的除錯選項,下面介紹如何啟用 Shell 除錯模式。 寫完指令碼後,建議在執行指令碼之前先檢查指令碼中的語法,而不是檢視它們的輸出以確認它們是否正常工作。 在本系列的這一部分,我們將瞭解如何使用語法檢查除錯模式
shell指令碼中使用getopts處理多命令列選項
在Linux系統中,許多命令都提供了選項,使用不同的選項就會得到不通的執行結果例如:ls命令,ls命令提供了多個選項:-l、-a、-A、-h、-i等等,每個選項具有不同的功能,我們自己寫指令碼時也可以定義選項,提示使用者如何使用,本文介紹如何使用getopts命令來處理命令選
shell指令碼中使用for迴圈開啟並行方法
大家經常使用for迴圈來給指定指令碼輸入引數,按照引數的輸入順序指令碼順序執行,如以下指令碼:for (( i = 1; i <= 999; i++ )) do sh diaoyong.sh $i done把1-999不停輸入diaoyong.sh指令碼中,該指令碼