質問

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エラーは修正されません-あなたが知っているのは何も起こらなかったことだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top