KornShellスクリプトで未設定の変数を使用する場合の警告方法。
質問
KornShell(ksh)スクリプトでエラーまたは警告をスローして、未設定変数の使用を防ぐ方法はありますか? 削除したい一時フォルダがあると仮定しましょう。
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
実際に発生する前にこの種の間違いを防ぐ方法
スクリプトは、削除を試みる前にファイルの存在と空の文字列をチェックする必要があることを知っています。これは、警告で回避できた間違いを説明するための単なる例です。この機能がkshに存在するかどうかはわかりません。存在する場合、どのようにオンにしますか?
解決
コマンド
set -u
未設定の変数を展開しようとすると、POSIX sh (1)とその派生語がライチョウになります。
例:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
他のヒント
コンテンツがあるかどうか、つまり ''でないことを確認して、「変数が空です」などのメッセージを出力できます。
しかし、それでもこのようなPEBCAKエラーは修正されません-あなたが知っているのは何も起こらなかったことだけです。
所属していません StackOverflow