シェルスクリプトで呼び出された関数から値を返したいのですが。構文が足りない可能性があります。グローバル変数を使ってみました。しかし、それもうまくいきません。コードは次のとおりです。
lockdir="somedir"
test() {
retval=""
if mkdir "$lockdir"
then # Directory did not exist, but it was created successfully
echo >&2 "successfully acquired lock: $lockdir"
retval="true"
else
echo >&2 "cannot acquire lock, giving up on $lockdir"
retval="false"
fi
return retval
}
retval=test()
if [ "$retval" == "true" ]
then
echo "directory not created"
else
echo "directory already created"
fi
あなたの質問とは関係ありませんが、とにかくロックを取得しようとしている場合は、「lockfile」コマンドを使用できます。
—
ビクトルHerraiz