web-dev-qa-db-ja.com

kshで空の文字列をチェックする方法

簡単なkshスクリプトを書いています。文字列が空かどうかを確認する必要があります。どうすればいいですか?これは私が持っているものです:

findRes=`find . -name believe | xargs grep -q "ser"`
if [ "${findRes:-unset}" != "unset" ];then

     print "${file}"
fi
7
Programmer

emptyはcharのない文字列ですが、定義されているため、この場合

[ -z "${MyVar}" ]

nullは、アクションが失敗した場合であり、空の応答を返す場合でもありません。検索でパターンが見つからない場合は、grep -q[ $? -ne 0 ]でテストできます。

6
NeronLeVelu

if ["$ var" = ""];その後

も動作します

1
fde101

test-nオプション、またはksh/bash[[ ... ]]相当を使用します。

string_not_empty() { [[ -n $1 ]]; }

より強力なバリエーションは、パラメーター展開にアサーション構文を使用することです。

var=${1:?string must not be empty} || return

これによりエラーが発生し、現在の機能が中止されます

1
Henk Langeveld