linux shell基本構文とデバッグ技術

1798 ワード

shellの文法はcとはいろいろ違いますが、ちょっと油断するといろいろな問題があります.ここにはデバッグ技術の総括があります.私も応答のコード検証を書きました.
 
元の場所:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/
以下のコマンドを実行する場合:export DEBUG=true
デバッグ情報が表示されます.そうしないと、エラーメッセージのみが表示されます.
デバッグの手段:
  • sh -x ./test.sh
  • trap "command"signal
  • tee/tmp/tmp.txt
  • debug関数
  • 拡張デバッグ:export PS 4='+{$LINENO:${FUNNAME[0]}}';  sh -x ./test.sh;
  • #! /bin/bash
    
    
    :<>/dev/null ;then
            echo "var1 is number"
    else
            echo "var1 is not number"
    fi
    
    
    
    echo ""
    for i in `seq 1 10`;do
            printf "%d " $i
    done
    
    echo
    for((i=0;i<10;i++));do
            printf "%d " $i
    done
    
    
    temp=0
    while true;do
    
                    read -p "input number:(bigger than 10 to break)" temp
            echo $temp
    
            case $temp in
                            10)
                                            echo "break out"
                                            break
                                            ;;
                            *)
                                            echo "continue"
                                            ;;
            esac
    
    done
    
    echo "wc:"
    wc -l <