シェルスクリプトのデバッグと問題の判断
記事のディレクトリ
スクリプトのデバッグと問題の判断
[root @ localhost〜] #sh [-nvx]スクリプトファイル
オプションとパラメーター:
-n:スクリプトを実行せず、構文の問題のみを照会します。
-v:スクリプトを実行する前に、スクリプトの内容を画面に出力します。
-x:使用したスクリプトの内容(実行プロセス)を画面に表示します
1.構文クエリ
1から100までの整数の合計のスクリプトファイル
#!/bin/bash
sum=0
i=0
while [ ${i} -ne 100 ]
do
i=$[$i+1]
sum=$[$sum+$i]
done
echo "运算结果是:$sum"
次に、確認のために最後の引用符を意図的に漢字に変更しました
そして、戻り値は0ではありません
[root@localhost ~]#sh -n sum1.sh
sum1.sh:行9: 寻找匹配的 `"' 是遇到了未预期的文件结束符
sum1.sh:行10: 语法错误: 未预期的文件结尾
[root@localhost ~]#echo $?
2
次に、文字を修正し、文法上の問題についてスクリプトを再度テストします
2.実行プロセスを表示します
例2:
1からユーザー入力値の累積整数合計まで、sh-xスクリプトファイルを使用して実行プロセスを表示します
- スクリプトファイルは
#!/bin/bash
read -p "请输入整数值(1-100):" nu
sum=0
i=0
while [ ${i} -ne ${nu} ]
do
i=$[$i+1]
sum=$[sum+i]
done
echo "从1到${nu}的运算结果是:$sum"
- 実行プロセスを表示する
3.2つのオプションsh-vxスクリプトファイルも利用できます
スクリプトファイルの内容を見に来ると、スクリプトの実行プロセスを見ることができ、アイデアがより明確になります!
ここでは、次のように関数スクリプトを使用して検証します
#!/bin/bash #所用shell
function db1 { #db1是函数名
read -p "请输入:" value #value是变量名
return $[$value * 2] #返回值取所输入的变量名的值和2的乘积的结果值
}
db1 #调用函数
echo $? #输出返回值(输出上个命令执行结果的返回值)
4.コマンドモードに入ります。nuを設定し、Enterキーを押して行番号を表示します。
特にスクリプト行数が多い場合は、指定行が間違っていても、人間の目がまったく数えられないことがあります。コマンドモードで英字コロン「:」を入力して最終行モードに入る必要があります。 set nuコマンドを入力し、Enterキーを押して、スクリプトの内容を一覧表示します。対応する行数